繁体   English   中英

如何从模型绑定Collection以查看MVC Razor

[英]How can I bind Collection from model to view MVC Razor

我正在使用ASP.NET MVC开发Web应用程序,我有两个这样的实体:

[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请求时,它始终为null。 希望能有所帮助。

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

还请看以下博客,该博客显示了与复杂对象的模型绑定如何在MVC中工作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM