ModelState无效时提交数据后的Ajax表单和UpdateTargetId
在我看来,我有两个片面的观点。
- 第一个部分视图(PV1):用户可以在文本框中键入一个项目并通过 ajax 表单提交。
- 第二部分视图(PV2):用户可以查看之前提交的项目列表。
PV1 在 PV2 上的 div 上使用 UpdateTargetId
,因为我们希望使用新添加的项目更新列表。
当 PV1 上提交的项目有效时,一切都会正常进行。当提交ajax表单时ModelState.IsValid == false
时它不起作用。它不起作用,因为 UpdateTargetId 位于 PV2 上,并且我需要更新 PV1 以显示 ModelState 错误。所以我们在 PV2 上遇到了 PV1 的重复!
下面是另一篇关于类似问题的 stackoverflow 帖子,但没有提供解决方案。
如果 ModelState 无效,ASP.NET MVC AJAX 更改 UpdateTargetId< /a>
我认为 Json 替代方案可能是一个解决方案,但我想知道我们是否可以调整标准 Ajax 表单 方法来满足我们的需要?
On my view, I have 2 partial views.
- 1st partial view (PV1): user can type an item in a textbox and submit through an ajax form.
- 2nd partial view (PV2): user can see a list of items previously submitted.
The PV1 uses UpdateTargetId
on a div on the PV2 because we would like to update our list with the newly added item.
Everything works well when items submitted on the PV1 are valid. It doesn't work when ModelState.IsValid == false
when ajax form is submitted. It doesn't work because the UpdateTargetId is located on the PV2, and I need to update the PV1 for showing the ModelState Errors. So we encounter with duplicate of the PV1 on the PV2!
Below is another stackoverflow post on a similar problem but no solutions has been provided.
ASP.NET MVC AJAX change UpdateTargetId if ModelState is invalid
I think a Json alternative may be a solution but I'm wondering if we can adapt the standard Ajax form method to suit our need here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以尝试使用
OnComplete
: 而不是使用UpdateTargetId
,并在此处理程序中测试结果视图中是否存在错误:
Instead of using
UpdateTargetId
, you could try usingOnComplete
:and inside this handler test whether there is an error in the resulting view: