我有一个 Razor 页面,其中控制器 GET 操作方法将模型返回到视图。该模型包含一个成员,它是
List<int> ids
现在,当我提交该页面时,我想在控制器上调用 POST 方法,传递模型,但它没有传递该
List<int> ids
成员的内容,因为我总是得到一个空列表。
我什至在表单内的视图上放置了这样的隐藏字段:
@foreach (var id in model.ids)
{
@Html.HiddenFor(model => model.ids, new{ @name= "ids", @value = id})
}
现在我得到了
null
List
。
问题出在哪里?
您的代码将生成 value="System.Collections.Generic.List`1[System.Int32]"
<input data-val="true" data-val-required="The ids field is required." id="ids" name="ids" type="hidden" value="System.Collections.Generic.List`1[System.Int32]" />
尝试如下代码:
选项1:
@foreach (var id in Model.ids)
{
<input name="ids" type="hidden" value="@id" />
}
选项2:
@for (int i = 0; i < Model.ids.Count; i++)
{
@Html.HiddenFor(model => Model.ids[i])
}
结果: