2015-04-26 56 views
0

我有一個多對多的關係,我已經實現並完美工作,現在我想在可以插入數據的某個實體的「插入」頁面上有一組複選框在中間表中。複選框包含值但不包含標題

我有一個視圖模型,它包含以下類的數組:

class CategoryManager { 
    public int id { get; set; } 
    public string Title { get; set; } 
    public bool Checked { get; set; } 
} 

在視圖,我有以下行創建的複選框爲每個陣列成員:

for (int i = 0; i < Model.categories.Count(); i++) 
    { 
     @Html.CheckBoxFor(m => m.categories[i].Checked)<i>&nbsp</i> 
     @Model.categories[i].Title <br/> 
    } 

現在,我已經注意到,當頁面被提交併且整個ViewModel被髮送回控制器時,在「CategoryManager」的數組中,每個實例都有該ID並且「Checked」正確地通過(取決於不管用戶是否標記了複選框),但是,所有的「標題」都是NULL。

我知道這應該是我缺少一個很基本的東西,但我是一個牛逼;)

非常感謝你提前!

回答

1

你不生成財產Title(或ID所以不知道你如何張貼回來)的控制。添加一個隱藏的輸入爲Title財產

for (int i = 0; i < Model.categories.Count; i++) 
{ 
    @Html.CheckBoxFor(m => m.categories[i].Checked) 
    @Html.LabelFor(m => m.categories[i].Checked, "Model.categories[i].Title") 
    @Html.HiddenFor(m => m.categories[i].ID) 
    @Html.HiddenFor(m => m.categories[i].ID) 
} 

注意使用LabelFor()創建與複選框關聯的標籤。