免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ASP.NET MVC3中Model驗(yàn)證
   原文地址:http://blog.csdn.net/w809026418/article/details/6754157 CSDN 我生活的點(diǎn)滴

概述

上節(jié)我們學(xué)習(xí)了Model的數(shù)據(jù)在界面之間的傳遞,但是很多時(shí)候,我們?cè)跀?shù)據(jù)傳遞的時(shí)候?yàn)榱舜_保數(shù)據(jù)的有效性,不得不給Model的相關(guān)屬性做基本的數(shù)據(jù)驗(yàn)證。

本節(jié)我們就學(xué)習(xí)如何使用 System.ComponentModel.DataAnnotations 命名空間中的特性指定對(duì)數(shù)據(jù)模型中的各個(gè)字段的驗(yàn)證。

這些特性用于定義常見的驗(yàn)證模式,例如范圍檢查和必填字段。而 DataAnnotations 特性使 MVC 能夠提供客戶端和服務(wù)器驗(yàn)證檢查,使你無(wú)需進(jìn)行額外的編碼來(lái)控制數(shù)據(jù)的有效。

System.ComponentModel.DataAnnotations 特性可用于實(shí)體數(shù)據(jù)模型 (EDM)、LINQ to SQL 和其他數(shù)據(jù)模型。 還可以創(chuàng)建自定義驗(yàn)證特性。

關(guān)于DataAnnotations請(qǐng)看System.ComponentModel.DataAnnotations概述

數(shù)據(jù)級(jí)別的驗(yàn)證

創(chuàng)建項(xiàng)目新建名為User的Model類

public class User{    public int ID { get; set; }}

以Create驗(yàn)證為例來(lái)學(xué)習(xí)DataAnnotations 驗(yàn)證。

新建Create方法

//新建        // GET: /User/Create        public ActionResult Create()        {    return View();        } 

添加視圖

注意:在添加視圖的時(shí)候,如果強(qiáng)類型視圖找不到Model,建議在重新生成解決方案。

非空驗(yàn)證

public class User{    public int ID { get; set; }    [DisplayName("姓名")]    [Required(ErrorMessage = "姓名不能為空")]    public string Name { get; set; }}

添加視圖直接運(yùn)行

字符長(zhǎng)度驗(yàn)證

public class User{    public int ID { get; set; }    [DisplayName("姓名")]    [Required(ErrorMessage = "姓名不能為空")]    public string Name { get; set; }    [DisplayName("密碼")]    [StringLength(6, ErrorMessage = "密碼不能超過6個(gè)字符")]    public string Password { get; set; }}

添加視圖后直接運(yùn)行

數(shù)字驗(yàn)證

 [DisplayName("年齡")] [Range(1, int.MaxValue, ErrorMessage = "請(qǐng)輸入大于等于1的數(shù)")]         public int Age { get; set; }

添加視圖直接運(yùn)行

正則表達(dá)式驗(yàn)證

[DisplayName("電子郵件")]       [RegularExpression(@"^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$",  ErrorMessage = "請(qǐng)輸入正確的Email格式\n示例:abc@123.com")]        public string Email { get; set; }

添加視圖后運(yùn)行效果

業(yè)務(wù)邏輯驗(yàn)證

遠(yuǎn)程服務(wù)端驗(yàn)證

Remote異步請(qǐng)求驗(yàn)證,在[HttpGet]時(shí)獲取指定Controller里面的指定方法驗(yàn)證,此方法必須是[HttpGet]標(biāo)記的,返回類型為Json類型的JavaScript對(duì)象。

Model代碼

[DisplayName("姓名")]        [Required(ErrorMessage = "姓名不能為空")]       [Remote("GetUser", "User", ErrorMessage = "該姓名已存在")]       public string Name { get; set; }

Controller代碼

//HttpGet是必須加的[HttpGet]        public ActionResult GetUser(string name)        {    return Json(name != "aa", JsonRequestBehavior.AllowGet);        }

直接添加視圖運(yùn)行

自定義Attbitue驗(yàn)證

Model代碼

[Required][StringLength(15)][LoginUnique]public string Login { get; set; }

Attribute代碼

    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]    public sealed class LoginUniqueAttribute : ValidationAttribute    {        private static readonly string DefaultErrorMessage = "login unique";//MUI.login_unique;        public LoginUniqueAttribute()            : base(DefaultErrorMessage)        {        }        public override string FormatErrorMessage(string name)        {            return DefaultErrorMessage;        }        public override bool IsValid(object value)        {             return UserService.Check(p=>p.Name==value.ToString());        }    }

直接添加視圖運(yùn)行

總結(jié)

其實(shí)微軟DataAnnotations驗(yàn)證一直是在VS平臺(tái)上面充分運(yùn)用的,不管是Web程序還是WForm程序甚至是Silverlight程序,都可以使用微軟提高的DataAnnotations驗(yàn)證,可以說(shuō)是無(wú)孔不入啊。不過就這三種程序而言,MVC的驗(yàn)證相對(duì)來(lái)說(shuō)還是比較完善的,簡(jiǎn)單適用。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
asp.net mvc3 的數(shù)據(jù)驗(yàn)證(一)
在asp.net WebAPI 中 使用Forms認(rèn)證和ModelValidata(模型驗(yàn)證)
ASP.NET MVC 入門介紹 (下)
無(wú)廢話MVC入門教程六[Model中的驗(yàn)證規(guī)則]
asp.net MVC 3多語(yǔ)言方案
學(xué)習(xí)筆記:ASP.NET MVC2 之驗(yàn)證 - 看花開花落 - 博客園
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服