.NET Core 2.0具有一对多关系的部分视图

时间:2018-05-30 06:23:14

标签: c# asp.net-mvc .net-core partial-views

我正在使用ASP.NET Core 2.0,我正在尝试使用局部视图列出一些项目。

我有这两个模型

public class Person {
    [Key]
    public String PersonID {get; set;}
    public String Name {get; set;}
}

public class Item {
    //PersonID and ItemName make the Primary key
    public String PersonID {get; set;} //Foreign Key to Person
    public String ItemName{get; set;}
    public String Description {get; set;}

    public Person Person {get; set;}
}

我有一个显示来自Person表的信息的视图。在下面我想呈现一个部分视图,列出该人拥有的项目。我创建了一个局部视图,但我不知道如何调用控制器函数来查询数据库或将项目列表传递给它。

2 个答案:

答案 0 :(得分:1)

你应该像这样创建一个PersonViewModel:

class PersonViewModel
{
    public string PersonId { get; set; }
    public string Name { get; set; }
    public IEnumerable<Item> Items { get; set; }
}

然后用控制器中的数据填充此模型。然后将此模型传递给Person视图,并为每个Item创建一个局部视图,如下所示:

@foreach(var item in Model.Items)
{
    @Html.Partial("ItemPartial", item)
}

如果您需要更多帮助,请告诉我。

答案 1 :(得分:0)

在视图中使用此功能来呈现部分视图@Html.Action("ActionResult method","ControllerName")

控制器方法

public ActionResult MethodName()
{
    //Your logic to get and fill the data in model
    return View("_PartialViewName",model);
}