向Ajax.BeginForm发送失败的正确方法是什么?

时间:2019-05-10 19:59:35

标签: c# asp.net-mvc ajax.beginform jsonresult

我开始使用Ajax.BeginForm,并且我了解可以调用控制器的Action并获取其响应。 因此,如果用户正在尝试登录,则我创建了一个CheckLogin Action,该操作需要用户名和密码。 如果登录名和密码正确,我将通过重定向Uri返回一个Json到我的电话,一切正常,但是我不知道失败应该如何进行。 我应该抛出异常吗?我应该返回错误的请求吗?

return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest, "Invalid credentials");

哪种方法是正确的?

预先感谢大家!

1 个答案:

答案 0 :(得分:2)

这取决于失败的类型...如果凭据无效,则您应该返回合适的HTTP状态,可能是“错误请求”(400),或者可能是“禁止”(403),具体取决于您希望的状态去工作。

如果代码实际崩溃,则将导致异常……这将导致HTTP内部服务器错误(500)状态。这表明与客户端截然不同的方案。仅当发生意外错误时才应使用它。

预期的问题(例如无效的密码)应导致返回不同的状态,从而使客户可以指示问题的性质。不好的请求可能是正确的状态,但是不同的人对此有不同的看法。没有硬性规定,只有指导。