MVC2验证(自定义异常)

源码

/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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode—210. 课程表 II

210. 课程表 II 题目描述&#xff1a;现在你总共有 numCourses 门课需要选&#xff0c;记为 0 到 numCourses - 1。给你一个数组 prerequisites &#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示在选修课程 ai 前 必须 先选修 bi 。 例如&#xff0c;想要学习课…

Visual C++2010的使用

Tools->Settings>Rest... 还原所有设置 运行程序&#xff1a;"D:\Program Files\VCExpress\Install\Microsoft Visual Studio 10.0\Common7\IDE\VCExpress.exe" 一、Visual C2010&#xff08;微软vc2010&#xff09;如何编写并运行C程序&#xff1f; 1、刚开始…

LeetCode—211. 添加与搜索单词 - 数据结构设计

211. 添加与搜索单词 - 数据结构设计 题目描述&#xff1a;请你设计一个数据结构&#xff0c;支持 添加新单词 和 查找字符串是否与任何先前添加的字符串匹配 。 实现词典类 WordDictionary &#xff1a; WordDictionary() 初始化词典对象 void addWord(word) 将 word 添加到…

58或与赶集合并,几人欢喜几人愁

前奏&#xff1a;相信在北京的园友们今天早上一觉醒来&#xff0c;让大家感慨的不光是昨天的沙尘暴&#xff08;2月雾霾3月风沙4月来了个套餐&#xff09;&#xff0c;还有就是58或与赶集合并的消息。 不过这种冤家相聚的例子今年已经有好几起了&#xff0c;like: 优酷土豆/快的…

Java中abstract和interface的区别

abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制&#xff0c;正是由于这两种机制的存在&#xff0c;才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性&#xff0c;甚至可以相互替换&#x…

解决报表部署时数据源存在不能替换的问题

打开报表项目属性页配置属性&#xff0d;常规设置OverWriteDataSourcestrue即可&#xff01;转载于:https://www.cnblogs.com/wyq2004/archive/2004/07/29/28300.html

android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升

android 智能指针的学习先看邓凡平的书扫盲 再看前面两片博客提升转载于:https://www.cnblogs.com/jeanschen/p/3507512.html

LeetCode—213. 打家劫舍 II

213. 打家劫舍 II 题目描述&#xff1a;你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#xff0c;相邻的房屋装有相互连通的防盗系统…

【转载】Linux下有趣的命令

转载&#xff1a;http://www.cnblogs.com/kernel_hcy/archive/2011/05/01/2033928.html yes&#xff1a;输出一串y&#xff0c;有时可以用来对付很多y/n选择的应用 。输出很多。。。banner&#xff1a;打印字符标题&#xff0c;就是用字符拼出大字来 ,最好把窗口最大化&#xf…

企业网站常用中英文对照表

网站导航 site map 公司简介 PROFILE or COMPANY Profile or Company 公司设备 EQUIPMENT Equipment 公司荣誉 GLORIES Glories 企业文化 CULTURE Culture 产品展示 PRODUCT Product 资质认证 quality certification 企业规模 SCALE Scale 营销网络 Sales Network 组织…

Cookies讲座

什么是 Cookie&#xff1f;Cookie 其实是一个标签&#xff0c;经常可能听到的中文翻译&#xff1a;小舔饼。当你访问一个需要唯一标识你的站址的 WEB 站点时&#xff0c;它会在你的硬盘上留下一个标记&#xff0c;下一次你访问同一个站点时&#xff0c;站点的页面会查找这个标记…

LeetCode—37. 解数独(困难)

37. 解数独&#xff08;困难&#xff09; 题目描述&#xff1a; 编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内…

linux下时间同步的两种方法分享

为什么80%的码农都做不了架构师&#xff1f;>>> 方法1&#xff1a;与一个已知的时间服务器同步 ntpdate time.nist.gov 方法2&#xff1a;linux自动同步时间vi /etc/crontab 00 0 1 * * root rdate -s time.nist.gov 转载于:https://my.oschina.net/boltwu/blo…

.Net TCP/UDP 编程 【一】【原创】

命名空间&#xff1a; using System.Net;using System.Net.Sockets; 关键 &#xff1a; TCP /UDP连接 UDP UDP 与 tCP的主要区别在于 UDP 不一定提供可靠的数据传输。事实上&#xff0c;该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽…

友元函数和友元类

友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因&#xff0c;控制类的友元和成员函数&#xff08;否则当你想更新你的类时&#xff0c;还要征得其它部分的拥有者的同意&#xff09;。 /…

LeetCode—216. 组合总和 III

216. 组合总和 III 题目描述&#xff1a; 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 考察重…

发表和编辑Post的一个Bug

其实这个Bug很早以前就发现了&#xff0c;只是一直忘了问dudu。在写Post的时候&#xff0c;当我需要改变字体颜色&#xff0c;例如选择红色时&#xff0c;文字的字体发生了改变。但当我第二次选择字体颜色&#xff0c;且选择相同的颜色时&#xff0c;选中的文字颜色就没有发生变…

maven配置_eclipse创建maven_maven插件配置

为什么80%的码农都做不了架构师&#xff1f;>>> 最近项目开发中需要使用maven。Maven这个东西是我2年前自学的。这2年之中基本没有使用过。现在项目需要&#xff0c;只有重新来一遍回锅肉。重新学习。经过一下午的斗争&#xff0c;一下午的各种问题各种解决&#x…

收藏

源码解析&#xff1a;http://www.iocoder.cn/categories/Sharding-JDBC/?cnblog java源码&#xff1a;http://blog.csdn.net/javazejian js 火狐文档&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/JavaScript NIO:http://www.iteye.com/magazines/132-Java-NIO J…

老生又长谈:HttpApplication,HttpModule,HttpContext及Asp.Net页生命周期

IIS在接到一个新的http请求后&#xff0c;最终会调用asp.net_isapi.dll的ISAPI扩展(特指IIS6.0环境&#xff0c;iis7.0的应用程序池默认为集成方式&#xff0c;相对有所变化)&#xff0c;然后传递到httpRuntime Pipe(http运行时管道)&#xff0c;Asp.Net这时才开始运行(即HttpR…