【发布时间】:2015-10-06 19:00:30
【问题描述】:
我正在将“创建用户”表单作为局部视图加载到模式对话框中。在该视图中,我使用 MVC 助手 Ajax.BeginForm,指定 InsertionMode.ReplaceWith 并将 UpdateTargetId 设置为表单本身,因此可以提交表单,如果有更多信息,它将返回自身的更新版本并替换自身需要。基本上,AJAX 请求应该返回 HTML。
我应该如何传达此类 AJAX 请求的其他结果,例如当操作完成并且没有 HTML 可返回时(例如,用户已成功创建,因此需要关闭模式对话框)?
我可以使用 HTTP 状态代码或内容类型标头吗?我正在寻找最简洁的方法来完成此任务,同时保持与使用 Microsoft 不显眼的 AJAX 的现有 Ajax.BeginForm 方法的兼容性。也许我需要在 AjaxOptions 中指定一个 OnComplete 处理程序,检查状态代码或内容类型,然后如果操作已完成且没有要返回的 HTML,则取消默认的“ReplaceWith”行为。
我的想法与另一篇帖子的评论相同:“通过检查 HTML 内容中的错误消息而不是仅测试响应代码来测试响应似乎并不实际。” Using Http Status Codes During Form Validation
【问题讨论】:
标签: jquery ajax asp.net-mvc-5 unobtrusive-validation http-response-codes