显示JsonResult在MVC 3项目中返回的ModelState错误?
发布时间:2020-12-16 18:41:38 所属栏目:百科 来源:网络整理
导读:我有一个使用JsonResult操作而不是ActionResult的创建页面.在ActionResult操作中,错误显示在违规字段旁边的视图上.现在,JsonResult只返回一个显示在警告框中的字符串. 我可以在视图上显示ModelState错误吗? 控制器 [HttpPost]public JsonResult Create(Tloa
我有一个使用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()}); } 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); } } }); } 解决方法
有错误的占位符并最初隐藏它
<div id="err"></div> 并在出现错误时 else { $("#err").html(result.ex); $("#err").show(); //or you can use .slideDown() etc } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |