溫馨提示×

                    MVC3如何自定義注解驗證字符長度

                    發布時間:2021-11-23 17:53:48 來源:億速云 閱讀:55 作者:小新 欄目:編程語言

                    這篇文章主要介紹MVC3如何自定義注解驗證字符長度,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

                    自定義注解(驗證字符長度)

                    需要繼承ValidationAttribute類,它是一個抽象類。

                    需要引用命名空間:

                    using System.ComponentModel.DataAnnotations;

                    ----------新建一個類(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}字符過長"):向基類的構造函數添加一個默認的錯誤提示信息
                            public MaxWordsAttribute(int maxWords):base("{0}字符過長")
                            {
                                _maxwords = maxWords;
                            }
                            /// <summary>
                            /// 
                            /// </summary>
                            /// <param name="value">要驗證對象的值</param>
                            /// <param name="validationContext">描述執行驗證檢查的上下文</param>
                            /// <returns></returns>
                            protected override ValidationResult IsValid(object value, ValidationContext validationContext)
                            {
                                if (value != null)
                                {
                                    if (value.ToString().Length > _maxwords)
                                    {
                                        //validationContext.DisplayName:字段的名稱
                                        //FormatErrorMessage:錯誤消息
                                        var msg = FormatErrorMessage(validationContext.DisplayName);
                                        return new ValidationResult(ErrorMessage);
                                    }
                                }
                                return ValidationResult.Success;
                            }
                    
                            
                        }
                    }

                    ----------給模型添加數據注解

                    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="字符過長")]
                            public virtual string st_name { get; set; }
                    
                            public virtual List<School> Schools { get; set; }
                        }
                    
                    }

                    =============================================子驗證模型

                    是要繼承接口: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 List<School> Schools { get; set; }
                    
                    
                    
                            #region IValidatableObject 成員
                    
                            public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
                            {
                                if (st_nameConfirm.Length > 3)
                                {
                                    yield return new ValidationResult("字符過長", new[] {"st_name" });
                                }
                            }
                    
                            #endregion
                        }
                    
                    }

                    以上是“MVC3如何自定義注解驗證字符長度”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

                    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

                    免費撥打  400 100 2938 免費撥打 400 100 2938
                    24小時售后技術支持 24小時售后技術支持
                    返回頂部 返回頂部
                    毛茸茸逼喷白浆_毛茸茸的BBB老妇人_毛茸茸的的肥婆阴户