2
我正在運行一個MVC5網站,並嘗試將它從使用單選按鈕切換到複選框。我在這個網站上閱讀了很多其他的例子,但似乎無法使它工作。我當前的ViewModel作爲NULL發佈到控制器。這是它目前的樣子:從無線電模式切換到複選框
public class ViewModel {
public string SelectedLeader { get;set;}
public IEnumerable<Personnel> Team { get;set; }
}
public class Personnel : TableEntity {
... other attributes here
public bool IsLead {get;set;}
}
的SelectedLeader保持了單選按鈕選定元素的RowKey的賽道,所以想我可以切換這IEnumerable的,但仍比其他例子看起來不正確。我的HTML看起來像這樣:
@using (Html.BeginForm())
{
other stuff on page
@foreach (var person in Model.Team) {
... print other stuff
@Html.CheckboxFor(e => person.IsLead , new { [email protected] })
@Html.HiddenFor(e => person.RowKey)
}
}
public ActionResult Edit(ViewModel viewModel) {
...
}
當回發到服務器,實際上隊回來爲空值(與相同但SelectedLeader沒有使用ATM)。我相信我設置CheckboxFor的方式可能有問題,但它確實設置了其初始設置。
任何想法?謝謝你。
史蒂夫
這是非常有名的問題。基本上你需要在標記中使用'for'而不是'foreach',這樣你的助手看起來像這樣:'@ Html.HiddenFor(m => m [i] .RowKey)''。請注意,此處lambda的右側取決於lambda的左側。這是它應該如何在剃刀,其他方式通常表明標記有問題 – Andrei 2014-09-22 23:33:13
啊,很高興知道 - 真正瞭解這個建議。明天早上將嘗試改變!嗯,無法想象如何給你聲望。 – 2014-09-23 01:14:39