首页 > web前端 > js教程 > 如何在 ASP.NET MVC 中成功地将集合传递给部分视图并处理数据提交?

如何在 ASP.NET MVC 中成功地将集合传递给部分视图并处理数据提交?

Mary-Kate Olsen
发布: 2024-12-20 00:39:16
原创
912 人浏览过

How to Successfully Pass a Collection to a Partial View and Handle Data Submission in ASP.NET MVC?

使用 Html.BeginCollectionItem 帮助器传递集合的 Partial View

这个问题探讨了将对象集合传递给 Partial 的问题查看并成功将数据提交回控制器。尽管实现看似正确,但 AddRecord() 方法失败了,并且 BeginCollectionItem 帮助器没有为新添加的字段生成必要的隐藏标记。

问题分析

问题的根本原因在于控制器期望的对象类型与发送的数据不匹配。在提供的代码中,视图模型已更改为 CashRecipientVM,但控制器操作仍然需要 CashRecipient 类型的模型。

解决方案

要解决此问题,采取了以下步骤:

  1. 创建ViewModel (CashRecipientVM):

    • 创建了一个 CashRecipientVM 类来表示要编辑的数据并包含验证属性。
  2. 部分视图(_Recipient.cshtml):

    • 创建了部分视图“_Recipient.cshtml”来呈现单个 CashRecipientVM 实例。
    • BeginCollectionItem 帮助器用于绑定属性并允许添加多个
  3. Recipient() 方法(在控制器中):

    • Recipient() 方法已添加到控制器返回一个新的 Partial ViewResult CashRecipientVM.
  4. 主要 GET 方法(创建):

    • Create() GET 方法已更新为返回CashRecipientVM 的空列表
  5. 主视图:

    • 主视图已更新为使用部分视图“_Recipient.cshtml”显示现有收件人并允许添加新收件人
  6. Javascript:

    • 添加了 Javascript 函数来处理添加新收件人和删除现有收件人。
    • jQuery 和不显眼的客户端验证用于增强用户体验
  7. 更新表单 POST 操作(创建):

    • 表单的 POST 操作已更新以针对Create() 操作,现在需要 CashRecipientVM 的集合

通过实施这些更改,应用程序现在成功绑定了 CashRecipientVM 数据,允许动态添加和删除收件人,并将数据正确提交到控制器。

以上是如何在 ASP.NET MVC 中成功地将集合传递给部分视图并处理数据提交?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板