這篇文章主要介紹MVC3如何自定義注解驗(yàn)證字符長(zhǎng)度,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
10多年的東鄉(xiāng)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整東鄉(xiāng)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“東鄉(xiāng)網(wǎng)站設(shè)計(jì)”,“東鄉(xiāng)網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
自定義注解(驗(yàn)證字符長(zhǎng)度)
需要繼承ValidationAttribute類,它是一個(gè)抽象類。
需要引用命名空間:
using System.ComponentModel.DataAnnotations;
----------新建一個(gè)類(MaxWordsAttribute.cs)
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; namespace SchoolManageDomw.Models { public class MaxWordsAttribute:ValidationAttribute { private readonly int _maxwords; //base("{0}字符過(guò)長(zhǎng)"):向基類的構(gòu)造函數(shù)添加一個(gè)默認(rèn)的錯(cuò)誤提示信息 public MaxWordsAttribute(int maxWords):base("{0}字符過(guò)長(zhǎng)") { _maxwords = maxWords; } ////// /// /// 要驗(yàn)證對(duì)象的值 /// 描述執(zhí)行驗(yàn)證檢查的上下文 ///protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value != null) { if (value.ToString().Length > _maxwords) { //validationContext.DisplayName:字段的名稱 //FormatErrorMessage:錯(cuò)誤消息 var msg = FormatErrorMessage(validationContext.DisplayName); return new ValidationResult(ErrorMessage); } } return ValidationResult.Success; } } }
----------給模型添加數(shù)據(jù)注解
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; namespace SchoolManageDomw.Models { public class SchoolType:IValidatableObject { [Key] public virtual int st_id { get; set; } [MaxWords(10,ErrorMessage="字符過(guò)長(zhǎng)")] public virtual string st_name { get; set; } public virtual ListSchools { get; set; } } }
=============================================子驗(yàn)證模型
是要繼承接口:IValidatableObject
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.Web.Mvc; namespace SchoolManageDomw.Models { public class SchoolType:IValidatableObject { [Key] public virtual int st_id { get; set; } [Required] //不許為空 [Display(Name = "名稱")] public virtual string st_name { get; set; } public virtual ListSchools { get; set; } #region IValidatableObject 成員 public IEnumerable Validate(ValidationContext validationContext) { if (st_nameConfirm.Length > 3) { yield return new ValidationResult("字符過(guò)長(zhǎng)", new[] {"st_name" }); } } #endregion } }
以上是“MVC3如何自定義注解驗(yàn)證字符長(zhǎng)度”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!