C#屬性默認值設置


關於在MVC中view中設置默認值,可以象如下設置:

1、關於VIEWMODEL的部分

如果是C#  6.0,網上資料查到說可以

public int X { get; set; } = 100

如果語法不支持,只能改回.net 2.0的寫法。

public class UserType
    {
        private int _UserType = 1;
        public int UserTypeID 
        {
            get
            {
                return this._UserType;
            }
            set
            {
                this._UserType = value;
            }
        }
    }

需要糾正一下的是,在屬性上通過Attribute加[DefaultValue()]的方法是無效的。

//無效
[DefaultValue(1)] public int UserTypeID { get; set; }

2、關於Controller部分

如果想在View中獲取設置的默認值,那么我們需要返回一個new type()。

        public ActionResult Create()
        {
            ViewBag.MaxOrder = userTypeRepository.MaxOrder();
            return View(new UserType());
        }

這樣通過查看HTML源代碼,可以得到正確結果。

<input data-val="true" data-val-number="字段 UserTypeID 必須是一個數字。" data-val-required="UserTypeID 字段是必需的。" id="UserTypeID" name="UserTypeID" type="hidden" value="11" />

如果不new一個對象,是不能得到默認值的。

 

附注:

如果我們不對屬性設置默認值,MVC會幫我們自動填充默認值。如下:

//ViewModel部分
public int UserTypeID { get; set; }

//Controller部分
ViewBag.MaxOrder = userTypeRepository.MaxOrder();
return View(new UserType());

//查看HTML,MVC自動將int設為了0
<input data-val="true" data-val-number="字段 UserTypeID 必須是一個數字。" data-val-required="UserTypeID 字段是必需的。" id="UserTypeID" name="UserTypeID" type="hidden" value="0" />

 

所以我們實際可以這樣使用:

VIEWMODEL

    public class UserType
    {
        public int UserTypeID { get; set; }

        [Required(ErrorMessage = "請輸入用戶類型名稱")]

        public string TypeName { get; set; }
        [Required(ErrorMessage = "請輸入用戶類型排序")]
        [Range(-100, 100, ErrorMessage = "請輸入正確的排序")]
        public int TypeOrder { get; set; }
    }

Controller

        public ActionResult Create()
        {
            ViewBag.MaxOrder = userTypeRepository.MaxOrder();
            return View();
        }

Save

        public void SaveData(UserType UserType)
        {
            met_UserType model = UserType.MapTo<met_UserType>();

            if (UserType.UserTypeID == 0)
            {
                db.Entry<met_UserType>(model).State = EntityState.Added;
                LogRepository.Add(string.Format("添加了用戶類型:{0}", UserType.TypeName));
            }
            else
            {
                db.Entry<met_UserType>(model).State = EntityState.Modified;
                LogRepository.Add(string.Format("編輯了用戶類型:{0}", UserType.TypeName));
            }
            db.SaveChanges();
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM