如何将模型传递给 POST 控制器操作方法,包括 List 对象成员属性的内容?

问题描述 投票:0回答:1

我有一个 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

问题出在哪里?

asp.net-mvc post razor asp.net-core-mvc form-submit
1个回答
0
投票

您的代码将生成 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])
  } 

结果:

© www.soinside.com 2019 - 2024. All rights reserved.