2015-05-25 56 views
0

我正在开发使用ASP.NET MVC web应用程序,我有两个实体是这样的:如何从模型绑定集合查看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总是空的,我不知道我错过了什么,因为我有这样的观点

@Html.HiddenFor(model => model.Entity2Collection) 

但是当我发布Post请求时它总是空。我希望有一点帮助。

+0

工程时是显示您在哪里如何设置Entity1.Entity2Collection值的代码? –

+0

我在哪里以及如何设置entity.Entity2Collection中的值是我需要知道的。如果我使用Knockout viewmodel,我必须在Entity1模型中声明一个名为“list”的属性作为DataMember指示。但是,如果我不使用Knockout viewmodels我必须这样做吗?这是我面临的问题。 –

+0

必须在动作内完成 –

回答