2012-11-13 63 views
0

我有一個用戶對象,它具有三位數據,用戶,他們的訂閱級別以及他們是或可能成爲的所有組的列表。我需要生成一個視圖,讓我以一種明智的方式編輯這些數據,並且我希望它與我的強類型模型綁定。具有強類型模型的多個複選框輸入

我想每個可能的組都有一個複選框,並允許我的應用程序的用戶選中或取消選中框以更改成員身份。我遇到的問題是我的行動

[HttpPost] 
public ActionResult Edit(UserModel usr) 
{ 

} 

永遠不會從視圖中的複選框中接收值,但其他屬性正確填充。

我的第一個觀點是這樣的:

... 
@Html.EditorFor(m => m.UserName) 
@Html.EditorFor(m => m.Subscription) 
@Html.EditorFor(m => m.Membership) // just displays the string and bool values 
... 

我的第二個刺[也未能]

... 
@Html.EditorFor(m => m.UserName) 
@Html.EditorFor(m => m.Subscription) 

@foreach(var itm in Model.Membership) 
{ 
    @Html.EditorFor(_ => itm) 
} 
... 

我也試過了,沒有手工工藝<input>標籤不使用@Html.沒有運氣。

這是的usermodel的樣子:

public class UserModel 
{ 
    public string UserName { get; set; } 
    public int Subscription { get; set; } 
    public Dictionary<String, bool> Membership { get; set; } // this is the problem 
} 

回答

0

有可能是解決這個更好的方法,但是我最終從Dictionary<String,Bool>切換到List<SelectListItem>

生成正確的後視圖代碼數據如下:

... 
<ul> 
@for (int i = 0; i < Model.Membership.Count; i++) 
{ 
    <li> 
     @Html.HiddenFor(_ => Model.Membership[i].Text) 
     @Html.HiddenFor(_ => Model.Membership[i].Value) 
     @Html.CheckBoxFor(_ => Model.Membership[i].Selected) @Model.Membership[i].Text 
    </li> 
} 
</ul> 
... 
相關問題