我有一个使用JsonResult操作而不是ActionResult的创建页面.在ActionResult操作中,错误显示在违规字段旁边的视图上.现在,JsonResult只返回一个显示在警告框中的字符串.
控制器
[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); } } }); }