当我通过Ajax提交表单时,我有2种方式显示用户验证错误消息:
1)如果一切正常return Json(new { Status = true })
,如果控制器中存在错误return View(model)
。然后在客户端,像if (response.Status == undefined) $("#formWrapper).html(response)
这样的东西将用包含错误消息的新形式替换形式。
2)如果一切正常return Json(new { Status = true })
,如果有错误return Json(new { Status = false, Errors = errorList })
,然后在客户端进行errorList
并将消息附加到元素。
我应该选择哪一个?
注意:我知道我有客户端验证,如果有错误,根本不会提交请求,但有些东西需要在后端检查,不能放在客户端验证,所以我需要机制来返回有关控制器验证错误的信息。
答案 0 :(得分:1)
我会建议第一个。当您完全替换视图,数据或任何内容而不是更改它时,您往往会避免更多错误。
第二个基本上是改变视图的状态。改变状态是编程中最大的错误来源之一。
答案 1 :(得分:1)
我会使用选项二,因为您可以在客户端获取有关错误的更多信息(其他只是查看)并显示完美的错误消息。就像用户输入错误或数据导致错误或服务器端的任何自定义错误列表一样。
答案 2 :(得分:0)
当你成功回归时,我的建议有所不同
Json(new { Status = true })
并且当捕获任何错误时设置Response.StatusCode以及一些类型来处理它在ajax错误回调中我总是在下面执行该代码。
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(result.ErrorMessage);
通过这种方法,您将被分开担忧。