MVC2验证(自定义异常)

it2022-05-05  115

源码

/Files/zhangchao1/MVCValidationTest.rar

在contorllers内虽然简单,但有却有些不符合mvc 的设计理念,这里,我们将验证放到DLL部分

 

首先建立自定义的异常类

public class MyExcptions:Exception { //存放错误信息 List<string[]> errors = new List<string[]>(); //判断是否有错误 public bool IsValid { get { return errors.Count == 0 ? true : false; } } //添加错误信息 public void AddError(string name, string message) { this.errors.Add(new string[] { name, message }); } //填充ModelState public void FillModellState(ModelStateDictionary modelstate) { foreach (var e in this.errors) { modelstate.AddModelError(e[0], e[1]); } } }

然后创建一个BLL文件夹在里面创建一个UserBll类

public class UserBLL { public static void Edit(Models.User user, bool IsValid) { var e = new MyExcptions(); if (user.userName==null) { e.AddError("userName", "用户名不能为空"); } //别的不变,但在这里,我除了要判断e中是否有错误外,还要判断ModelState中是否有错误 if (e.IsValid && IsValid) { //在这里我可以写一些代码,因为完成了验证,我就可以开始更新数据库了 } else { throw e; } } } 接着就在Controller中创建action public ActionResult Validation1(Models.User user) { try { UserBLL.Edit(user, ModelState.IsValid); } catch (MyExcptions e) { e.FillModellState(ModelState); } if (ModelState.IsValid) { return View("Validation1"); } else { return View(user); } }

 

生成视图后,就好了!!!

本文纯属学习记录,如有错误,请多指教(原教程http://blog.csdn.net/zhaoqiliang527/archive/2010/05/24/5620668.aspx)

转载于:https://www.cnblogs.com/zhangchao1/archive/2011/04/27/2030474.html


最新回复(0)