【问题标题】:Hidden fields of complex object not passing to controller复杂对象的隐藏字段未传递给控制器
【发布时间】:2019-11-28 00:43:47
【问题描述】:

我在 for 循环内使用 HTML 帮助程序 HiddenFor 将复杂对象的一些属性绑定回我的模型。

如果我询问视​​图,我可以看到隐藏字段中的值设置正确,但是当我提交表单时,控制器中的值是 null。

查看

 @for (int i = 0; i < Model.CustomerSearchResponses.customers.Count; i++)
 {
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].name.first)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].name.last)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].name.company)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].address.line1)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].address.line2)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].address.city)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].address.stateProvince)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].address.postalCode)
     @Html.HiddenFor(m => m.CustomerSearchResponses.customers[i].address.country)
  }

<input id="CustomerSearchResponses_customers_0__name_first" name="CustomerSearchResponses.customers[0].name.first" type="hidden" value="BRIAN">

型号

    public class RequestViewModel
{
    **some other props**
    public CustomerSearchResponse CustomerSearchResponses { get; set; }
}

控制器

[HttpPost]
public ActionResult QASAddress(RequestViewModel model, string previousButton, string submitButton)
{
// Do Stuff 
}

隐藏字段

为了篇幅,并非所有隐藏字段都在此处发布,但它们都设置正确。当我发布表单时,CustomerSearchResponses.customers[i] 对象在那里,但 nameaddress 对象为空。

【问题讨论】:

  • 您能否发布视图模型结构,以及您要发布到的控制器操作的签名
  • 在渲染视图后,还发布一个 HTML 页面源示例,显示隐藏字段。
  • 问题已被编辑。
  • 谢谢@DevNoob。您的 RequestViewModel 代码 sn-p 具有属性“CustomerSearchResponse”,但您的视图引用的是 CustomerSearchResponses(复数形式)。您可以尝试用 CustomerSerarchResponses 集合替换 CustomerSearchResponse。
  • @sam 抱歉,当我拼命想找到解决方案时,这可能是一个错字。属性名称确实匹配,我已经更新了我的问题中的属性以匹配。

标签: c# asp.net-mvc razor


【解决方案1】:

我在控制器中创建了一个带有 GET 和 POST 操作的示例应用程序,我在 POST 中看到了客户属性,如下所示:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    相关资源
    最近更新 更多