MVC下自定義ModelState驗證擴展方法

MVC下可以通過對ModelState.IsValid方法進行驗證模型,當我們設計好一個模型並且通過引用

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

設置好相應的特性時,Action中通過ModelState.IsValid就可以對此模型進行相應的驗證,並且獲取之前設置好的驗證信息。

爲了方便的使用此功能我們可以自定義一個擴展方法,我們目前是獲取驗證信息中的第一條進行提示,當然這個可以自己設置。

        /// <summary>
        /// 取得Model的驗證錯誤信息
        /// </summary>
        /// <param name="control"></param>
        /// <returns></returns>
        public static string GetErrMessage(this Controller control)
        {
            string smsg = "";
            foreach (var key in control.ModelState.Keys)
            {
                var errors = control.ModelState[key].Errors;
                if (errors.Count() > 0)
                {
                    smsg = errors[0].ErrorMessage;
                    break;
                }
            }
            return smsg;
        }

在Action中 驗證調用時只要簡單調用就可以獲取驗證信息了

            if (ModelState.IsValid)
            {
                Msg = _SfdService.Add(model);
            }
            else
            {
                Msg = new MessageDTO() { Success = false, Message = this.GetErrMessage() };
            }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章