我正在开发一个MVC应用程序,我想在HTML Select中使用Select2和optgroups,所以我需要比Html.DropdownlistFor提供的更多控制。
在我看来,我有,
<select class="form-control">
@for (var i = 0; i < Model.Certs.Count; i++)
{
<option id="@Model.Certs[i].Value" value="@Model.Certs[i].Value">@Model.Certs[i].Text</option>
}
</select>
在模型中
public List<SelectedRecord> Certs { get; set; }
但由于某种原因,当回发到服务器时,父模型上的列表始终为null。我尝试过“for”方法而不是foreach,以及editTemplates方法。似乎没有什么工作。我错过了一些明显的东西吗?
答案 0 :(得分:1)
这是正常的,列表未在回发时序列化,解决方案是将列表放在TempData中并检索帖子中的列表。
对于所选的选项,我建议将您的ID和ID以及名称添加到您的选择中,例如“Sel”
<select name="Sel" id="Sel"> ... </select>
并将其放在您的模型中
public string Sel { get; set;}
所以在你的帖子中你会得到所选的选项
答案 1 :(得分:0)
in id attribute there is no need of value @Model.Certs[i] Create right id and u will get the value in list after post also.
<select class="form-control">
@for (var i = 0; i < Model.Certs.Count; i++)
{
<option id="@Model.Certs[i]" value="@Model.Certs[i].Value">@Model.Certs[i].Text</option>
}
</select>