2015-05-25 103 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

必須在動作內完成 –

回答