.NET Core 2.0 具有一对多关系的局部视图
.NET Core 2.0 Partial views with one to many relationship
我正在使用 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;}
}
我有一个视图显示来自人 table 的信息。在其下方,我想呈现一个部分视图,列出该人拥有的项目。我创建了一个局部视图,但我不知道如何调用控制器函数来查询数据库或将项目列表传递给它。
在视图中使用它来呈现局部视图 @Html.Action("ActionResult method","ControllerName")
。
控制器方法
public ActionResult MethodName()
{
//Your logic to get and fill the data in model
return View("_PartialViewName",model);
}
您应该像这样创建一个 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)
}
如果您需要更多帮助,请告诉我。
我正在使用 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;}
}
我有一个视图显示来自人 table 的信息。在其下方,我想呈现一个部分视图,列出该人拥有的项目。我创建了一个局部视图,但我不知道如何调用控制器函数来查询数据库或将项目列表传递给它。
在视图中使用它来呈现局部视图 @Html.Action("ActionResult method","ControllerName")
。
控制器方法
public ActionResult MethodName()
{
//Your logic to get and fill the data in model
return View("_PartialViewName",model);
}
您应该像这样创建一个 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)
}
如果您需要更多帮助,请告诉我。