ASP.NET MVC2 获取ModelState中的验证错误提示

asp.net mvc内置的数据验证功能为我们提供了一个非常方便的数据验证体验,但是如果我们通过Ajax方式访问我们的Action并且返回验证的错误提示就比较麻烦了,经过反复实验终于找了一个解决方法,特此记录下来以备忘。

Action代码

 

代码
 1 [HttpPost]
 2         public ActionResult CreateComment(Comment comment)
 3         {
 4             if (!ModelState.IsValid)
 5             {
 6                 List<string> sb = new List<string>();
 7                 //获取所有错误的Key
 8                 List<string> Keys = ModelState.Keys.ToList();
 9                 //获取每一个key对应的ModelStateDictionary
10                 foreach (var key in Keys)
11                 {
12                     var errors = ModelState[key].Errors.ToList();
13                     //将错误描述添加到sb中
14                     foreach (var error in errors)
15                     {
16                         sb.Add(error.ErrorMessage);
17                     }
18                 }
19                 return Json(sb);
20             }
21             else
22             {
23                 return Json(commentRepository.InsertComment(comment));
24             }
25         }

 

JavaScript代码

 

代码
$("#commentform").submit(function () {
                $.ajax({
                    type: 
"POST",
                    url: 
"/AjaxResult/CreateComment/",
                    data: $(
this).serialize(),
                    dataType: 
"json",
                    success: 
function (data) {
                        
if (data == true) {
                            alert(
"成功");
                            ShowPage(articleID, pageSize, 
1);
                        }
                        
else if (data != true && data != false) {
                            
var result = "";
                            
for (var i in data) {
                                result 
= result + data[i] + "\r\n";
                            }
                            alert(result);
                        }
                    },
                    global: 
false
                });
                
return false;
            });

 

 

具体的就不解释了,自己能看懂就行了。
posted on 2010-12-08 22:31  卜俊生  阅读(4550)  评论(1编辑  收藏  举报