【问题标题】:Cascading MODELS in ASP.NET MVC 5 - Architectural Advice NEEDEDASP.NET MVC 5 中的级联模型 - 需要架构建议
【发布时间】:2019-02-14 11:21:40
【问题描述】:

考虑一个 View V 及其关联的导入 ViewModel VM。此视图用于财务文档提交过程并包含多个字段,并且 viewmodel VM 包含客户列表的属性 List>Customer>,该属性在启动时从数据库加载并填充下拉列表。 V 加载,用户从列表 List>C> 中选择客户 C。立即,表单提交持久 C.Id 并被重定向到 HttpGet ActionResult,该操作使用 C.Id 填充数据库中的下拉列表,其中包含先前从该客户订购的所有 Item Ids List>I>。此列表存储在 VM 中。用户从这个下拉列表中选择一个项目 I。立即,表单提交持久 I.Id 并被重定向到使用 C.Id 和 I.Id 的 HttpGet ActionResult 从数据库中检索与该项目关联的价格 I.Price 并将其填充到 V 上的文本框中.

以上内容很简单。现在是真正变得困难的地方。用户填写他们想要提交财务报告的数量,在附近的文本框中写下评论,然后按下“添加项目”按钮,然后重新加载表单,在表单上的 HTML 表中显示项目全部都可以看到,而 C.Id 仍列在其下拉列表中。该公司希望在最终提交完成之前一次将多个项目添加到表单中。现在,我必须保留一个 Item OBJECT(带有 5-6 个字段)以及一个 LIST>ITEM>,同时将更多项目添加到此列表中。目标是,我可以将其提交到包含 S.Id 的表格 Submission,S,其中将显示客户、地址信息、SubmissionId 和其他几个字段,并将所有项目提交到相关的 SubmissionItem 表,该表也将包含相同的 SubmissionId 以跟踪提交。

我完全不知道如何完成第二段。我不认为这是可能的。在桌面应用程序中,这是小菜一碟,但在网络上,我无法让表单持久存在!我唯一的想法是删除所有数据注释并且永远不要刷新 RedirectToAction 方法的视图,但这不是 PRG 协议。有什么想法吗?

【问题讨论】:

    标签: c# asp.net-mvc model-view-controller


    【解决方案1】:

    一种选择是使用 javascript 添加带有表单字段的行(在表格中或隐藏),以便在提交表单时准备好它们。 VM 将有一个列表或类似类型来显示返回的会话。

    另一种选择是对每个加法和减法使用异步操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-03
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 2011-09-26
      • 2013-01-02
      相关资源
      最近更新 更多