回发时MVC列表为空

时间:2014-08-25 07:14:46

标签: asp.net-mvc

我正在开发一个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方法。似乎没有什么工作。我错过了一些明显的东西吗?

2 个答案:

答案 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>