我如何将集合从模型绑定到视图MVC Razor
本文关键字:绑定 视图 MVC Razor 模型 集合 | 更新日期: 2023-09-27 17:50:45
我正在使用ASP开发一个web应用程序。NET MVC,我有两个这样的实体:
[DataContract]
public class Entity1 : IEntity<int>
{
[DataMember(Name="id")]
public int Id {get; set;}
[DataMember(Name="name")]
public string Name {get; set;}
[DataMember(Name="list")]
public ICollection Entity2Collection {get; set;}
}
[DataContract]
public class Entity2 : IEntity<int>
{
[DataMember(Name="id")]
public int Id {get; set;}
[DataMember(Name="name")]
public string Name {get; set;}
[DataMember(Name="entity3id")]
public int Entity3ObjId {get; set;}
public Entity3 Entity3Obj {get; set;}
}
在控制器动作中,我有以下内容:
[HttpPost]
public ActionResult Edit(Entity1 entity)
{
if(ModelState.IsValid){
await repository.updateAsync(entity);
}
return View();
}
在实体参数中,属性Entity2Collection总是null,我不知道我缺少什么,因为我在视图
中有这个@Html.HiddenFor(model => model.Entity2Collection)
但它总是空的,当我做一个Post请求。我希望能得到一点帮助。
控制器中参数的名称必须与字段的名称相同,因此如果控制器中有字段实体,则必须为其命名
还可以看看下面的博客,它展示了如何在MVC中与复杂对象进行模型绑定
http://blog.codeinside.eu/2012/09/17/modelbinding-with-complex-objects-in-asp-net-mvc/