仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 724|回复: 7
打印 上一主题 下一主题

[学习教程] 来一篇关于NET的详解ASP.NET MVC数据考证的一个特别办法

[复制链接]
乐观 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:25:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。<p>这里我们将先容ASP.NETMVC数据考证完成的一个特别办法,包含数据的考证,考证后数据的提交等等。51CTO编纂保举《ASP.NETMVC框架视频教程》。
关于ASP.NETMVC数据考证,用起来很出格,由于MS的封装,令人了解起来很隐晦。也大概良多人都在ScottGuthrie等人写的一本《ASP.NETMVC1.0》书中,见过NerdDinner项目中对Dinner工具修正和增加的时的数据考证。但有很多封装的中央,不晓得是如何的事情道理,明天研讨了,拿出来给人人分享一下。
数据库仍是上一篇blog中的库与表,一样的办法来创立news表的实体类,在主动天生的news这个实体类中,我们发明有一个特别的分部办法:
<OLclass=dp-c>partialvoidOnValidate(System.Data.Linq.ChangeActionaction);
这个办法没有完成,我们依据C#的语法晓得,假如分部类中的分部办法,没有完成的话,挪用和定议的中央都不会起甚么感化。如今,我们要往完美这个办法,让它“用”起来。
起首,人产在Models中创立news类的另外一部分,代码以下:

<OLclass=dp-xml>publicpartialclassnews{partialvoidOnValidate(System.Data.Linq.ChangeActionaction){if(!IsValid){thrownewApplicationException("考证内容项堕落!");}}publicboolIsValid{get{return(GetRuleViolations().Count()==0);}}publicIEnumerableGetRuleViolations(){if(String.IsNullOrEmpty(this.title.Trim()))yieldreturnnewRuleViolation("标题步能为空!","标题");if(String.IsNullOrEmpty(this.contents.Trim()))yieldreturnnewRuleViolation("内容不克不及为空!","内容");yieldbreak;}}//////划定规矩信息类///publicclassRuleViolation{publicstringErrorMessage{get;privateset;}publicstringPropertyName{get;privateset;}publicRuleViolation(stringerrorMessage){ErrorMessage=errorMessage;}publicRuleViolation(stringerrorMessage,stringpropertyName){ErrorMessage=errorMessage;PropertyName=propertyName;}}
在这里给出这么多代码,实际上是提早有计划的,由于从营业角度思索,还不该该写这部分代码。RuleViolation类很复杂,就是一个包含了两个属性的类(这个类的布局计划是依据前面的ModelState.AddModelError主法来计划的)。
在news分部类中,有一个IsValid的属性,这个属性是bool范例的,前往值取决于GetRuleViolations这个办法,这个办法前往值是一个IEnumerable范例的,IEnumerable是经由过程news的几个属性是不是为空来天生跌代的。假如title或contents为Null或””,就前往跌代。实在真实的用户数据的考证就是在这里完成,用户的数据的对与错,就是一个逻辑,只需用户数据不切合划定规矩,就能够 “yieldreturnnewRuleViolation("毛病标识","毛病提醒信息!")”;这里的毛病码提醒信息是显现到客户真个,以是要处置密友好的提醒。
如今考证用户数据,天生毛病列表的事情都做完了,但关头是怎样能让用户提交数据时,挪用OnValidate。这个成绩,先放一下,请记着,下面的代码,只需在用户提交数据时,挪用OnValidate,如许就可以失掉毛病汇合。
如今,让我们来处置Cotroller和View层,在Cotroller层,起首来增加index这个Action,代码以下:
<divclass="code"><OLclass=dp-c>publicActionResultIndex(){&我有个同学,他是搞Java的,他给我说“Java不是效率低,而是速度慢。”,我不是搞Java的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了?
admin 该用户已被删除
沙发
发表于 2015-1-18 14:31:00 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-24 16:50:45 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
简单生活 该用户已被删除
地板
发表于 2015-2-2 11:33:03 | 只看该作者
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
5#
发表于 2015-2-7 19:21:19 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
小魔女 该用户已被删除
6#
发表于 2015-2-23 09:40:53 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
透明 该用户已被删除
7#
发表于 2015-3-7 08:12:11 | 只看该作者
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
蒙在股里 该用户已被删除
8#
发表于 2015-3-14 17:50:51 | 只看该作者
是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-7 07:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表