我如何将集合从模型绑定到视图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 Razor

控制器中参数的名称必须与字段的名称相同,因此如果控制器中有字段实体,则必须为其命名

还可以看看下面的博客,它展示了如何在MVC中与复杂对象进行模型绑定

http://blog.codeinside.eu/2012/09/17/modelbinding-with-complex-objects-in-asp-net-mvc/