【发布时间】:2018-06-05 23:20:48
【问题描述】:
我有一个在 HTML 表格中显示项目列表的网页。列表上方是一个表单,它允许用户通过 AJAX(使用 Ajax.BeginForm)将新项目添加到列表中。当数据通过 AJAX 发布到控制器时,我将新项目添加到数据库后端并通过部分视图生成新表行,然后将其附加到现有表中。
当添加新项目的表单包含错误时,我想将表单呈现回 Web 浏览器并显示它。
所以问题来了:是否可以从控制器中指定 UpdateTargetId?目前,我从控制器返回的任何视图都插入到同一个目标中,但我想根据从控制器返回的任何视图更新不同的目标(即不同的 UpdateTargetId)。
【问题讨论】:
-
您为什么要这样做?这不是违反关注点分离问题并为您的控制器引入更多复杂性吗?将它们分离为不同的控制器操作可能更容易,以简化相似的代码并将其重构为自己的方法。
-
不知道如何拆分它。这是一个过程:用户在表单中输入数据。表单通过 AJAX 提交。如果表单包含错误,则必须将其呈现回显示错误的浏览器。如果它不包含错误,则需要将新行添加到表中。这是两个截然不同的视图,可能会被渲染回浏览器,这两个视图中的每一个都需要进入不同的占位符。
标签: asp.net-mvc