如何在主视图中调用具有模型的局部视图,两个视图都具有不同的模型

时间:2019-10-08 09:50:43

标签: asp.net-mvc partial-views

我有一个主视图,我想在其中调用局部视图,但是我的局部视图不是静态的,它具有模型,并且两个模型(主视图模型和局部视图模型都不同)不是在我编写{{ 1}} 它说对象引用未设置为它所表示的实例

@Html.Partial("MyPartialView")

这意味着我还需要调用控制器方法以及部分视图,如何基本上在部分视图中实现此目的,即列出我的记录。

1 个答案:

答案 0 :(得分:1)

您可以在主视图的操作中准备局部视图模型。 您应该创建一个具有两个属性的ViewModel,其中一个是主视图的模型,另一个是局部视图的模型。像这样:

public class ViewModel
{
    public List<MainModel> MainModels { get; set; }  
    public List<PartialViewModel> PartialViewModels { get; set; }
}

控制器代码:

public ActionResult MainView()  
{  
    ViewModel mymodel = new ViewModel();  
    mymodel.MainModels = GetMainModels();  
    mymodel.PartialViewModels  = GetPartialViewModels();  
    return View(mymodel);  
}  

查看代码

@model ViewModel   
...
PartialView("_Partial", Model.PartialViewModels);

属性不一定必须是列表类型。它们可以是同一实体。这取决于您的需求