javascript - MVC3 Controller 操作以编程方式返回失败的发布请求

标签 javascript asp.net-mvc-3 post

我有一个 Ajax 表单,它将输入数据发送到 Controller 。我当前有一个返回 View 的操作结果,并且 ajax 表单助手有一个它调用的“OnSuccess”函数。

我想要做的是,如果 Controller 中完成的验证失败,则将 POST 作为失败返回,以便我可以使用 AJAX 帮助程序中的 OnFailure 属性来启动另一个函数。这可能吗?

此外,我不想以这种方式使用模型绑定(bind)/验证,因为我使用的模型很复杂并且不容易进行绑定(bind)。

最佳答案

据我记得(仅返回到 Ajax 帮助程序),OnFailure 是在 HTTP 状态错误时调用的,因此,如果您使 View 触发其中之一,则应调用 OnFailure 函数,可能类似于以下内容在操作中(违背异常是异常的想法,并使用非正统的状态代码(冲突),但你明白了):

throw new HttpException(409, "Validation error");

或者,使用内置的 HttpStatusCodeResult:

return new HttpStatusCodeResult(409, "Validation error");

或者,如果您还需要返回一些实际内容:

Response.StatusCode = 409;
Response.StatusDescription = "Validation error";
return WhateverResult();

最后,如果您经常使用选项 3,您可以创建一个新的 ActionResult (or ViewResult)子类来处理设置状态代码并返回结果。

关于javascript - MVC3 Controller 操作以编程方式返回失败的发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9070437/

相关文章:

c# - 在 View 中创建 HiddenFor IEnumerable<String>

javascript - ChartJs Donut 解析数据集

javascript - 如何使用 JavaScript 跳转到特定页面的某个下拉菜单的特定值?

asp.net-mvc-3 - 在 MVC3 中添加有关打印功能的数据

asp.net-mvc - 如何将模型传递给 View ?

类型为 "application/x-www-form-urlencoded"的 C# HttpWebRequest - 如何在内容正文中发送 '&' 字符?

javascript - 使用名为 submit 的输入使用 Javascript 提交表单

jquery - 连续的、非并发的 jQuery AJAX 帖子

javascript - 纯 CSS 下拉菜单真的可行吗?

javascript - 如何在 JSLINT 中逐个方法地处理未使用的变量?