0
4

2 回答 2

0

在 HttpPost 方面,View 将所有的 FormCollection 返回给控制器。因此,它始终具有存储在表单元素中的值,即文本框、下拉列表或隐藏字段。

在您的情况下, homeViewModel 必须包含 SelectedCountry 属性的值,因为它在表单集合中并与 DropDown 元素相关联,但 CountryList 不与任何元素相关联,这就是它返回 null 的原因。

要将集合从视图返回到控制器,请找到线程。

祝你好运 !!

于 2012-09-01T11:44:17.560 回答
0

非常感谢Kundan,多个隐藏字段将解决问题,

 @Html.DropDownListFor(model => model.SelectedCountry, new SelectList(Model.CountryList, "CountryCode", "CountryName"), "---SELECT COUNTRY---",
                                    new { @class = "chosen", @onchange = "this.form.action='/Home/Index'; this.form.submit(); " })
            @if (Model.CountryList != null)
            {
                for (int i = 0; i < Model.CountryList.Count; i++)
                {
                    @Html.HiddenFor(model => model.CountryList[i].CountryCode) 
                    @Html.HiddenFor(model => model.CountryList[i].CountryName)
                }
            }
于 2012-09-01T13:18:44.367 回答