Joh*_*n M 5 error-handling json asp.net-mvc-validation asp.net-mvc-3
我有一个使用JsonResult操作而不是ActionResult 的创建页面.在ActionResult操作中,错误显示在违规字段旁边的视图上.现在,JsonResult只返回一个显示在警告框中的字符串.
我可以在视图上显示ModelState错误吗?
控制器
[HttpPost]
public JsonResult Create(Tload tload)
{
if (ModelState.IsValid)
{
...save changes
return Json(new { Success = 1, TransloadID = transload.TransloadID, ex = "" });
}
else
{
string totalError = "";
foreach (var obj in ModelState.Values)
{
foreach (var error in obj.Errors)
{
if (!string.IsNullOrEmpty(error.ErrorMessage))
{
totalError = totalError + error.ErrorMessage + Environment.NewLine;
}
}
}
return Json(new { Success = 0, ex = new Exception(totalError).Message.ToString()});
}
Run Code Online (Sandbox Code Playgroud)
jquery/javascript代码在视图中
function Save() {
// Step 1: Read View Data and Create JSON Object
...do stuff here
// Set 2: Ajax Post
// Here i have used ajax post for saving/updating information
$.ajax({
url: '/Expedite/Create',
data: JSON.stringify(salesmain),
type: 'POST',
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
if (result.Success == "1") {
window.location.href = "/Expedite/index";
}
else {
alert(result.ex);
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
有一个错误占位符并最初隐藏它
<div id="err"></div>
Run Code Online (Sandbox Code Playgroud)
当出现错误时
else {
$("#err").html(result.ex);
$("#err").show();
//or you can use .slideDown() etc
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4400 次 |
| 最近记录: |