|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也不知道,我同学昨天说数据挖掘很好。</p>ASP.NETMVC2内置撑持在服务器上考证数据正文考证属性,本文先容怎样利用System.ComponentModel.DataAnnotations中的基本类构建自界说考证属性,关于ASP.NETMVC2中数据正文是怎样事情的,请参考Brad的博客(http://bradwilson.typepad.com/blog/2009/04/dataannotations-and-aspnet-mvc.html)。
我会先容怎样毗连到ASP.NETMVC2的客户端考证扩大,以便你能够在客户端上运转JavaScript考证逻辑。
我将创立一个PriceAttribute来考证某个值是不是年夜于指定的代价,而且这个代价必需以99分停止,因而$20.00是有效的值,$19.99是无效的。上面是这个属性的代码:
以下为援用的内容:
- publicclassPriceAttribute:ValidationAttribute{
- publicdoubleMinPrice{get;set;}
- publicoverrideboolIsValid(objectvalue){
- if(value==null){
- returntrue;
- }
- varprice=(double)value;
- if(price<MinPrice){
- returnfalse;
- }
- doublecents=price-Math.Truncate(price);
- if(cents<0.99cents>=0.995){
- returnfalse;
- }
- returntrue;
- }
- }
注重假如值为空,前往的值是true,这个属性不会考证字段是不是必要。我会在RequiredAttribute中考证值是不是必要。它同意我将属性放在可选的值上,当用户将这个字段留为空时显现一个毛病。
我们能够创立一个视图模子,然后使用这个属性到模子长进行疾速测试,上面是这个模子的代码:
以下为援用的内容:
- publicclassProductViewModel{
- [Price(MinPrice=1.99)]
- publicdoublePrice{get;set;}
- [Required]
- publicstringTitle{get;set;}
- }
我们再疾速地创立一个视图(Index.aspx)显现和编纂窗体:
以下为援用的内容:
- <%@PageLanguage="C#"Inherits="ViewPage"%>
- <%using(Html.BeginForm()){%>
- <%=Html.TextBoxFor(m=>m.Title)%>
- <%=Html.ValidationMessageFor(m=>m.Title)%>
- <%=Html.TextBoxFor(m=>m.Price)%>
- <%=Html.ValidationMessageFor(m=>m.Price)%>
- <inputtype="submit"/>
- <%}%>
如今我们只必要一个有两个举动的把持器,一个编纂视图,另外一个吸收提交的ProductViewModel。
以下为援用的内容:
- [HandleError]
- publicclassHomeController:Controller{
- publicActionResultIndex(){
- returnView(newProductViewModel());
- }
- [HttpPost]
- publicActionResultIndex(ProductViewModelmodel){
- returnView(model);
- }
- }
我们还没有开启客户端考证,上面来看看当我们检察这个页面并提交一些值时会产生甚么。
我实在想不明白java的机制,为什么非要那么蛋疼,在同一个平台下重复编译。 |
|