• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#属性默认值设置

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

关于在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 字段是必需的。"  />

如果不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 字段是必需的。"  />

 

所以我们实际可以这样使用:

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();
        }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET(C#)--Repeater中生成“序号”列发布时间:2022-07-13
下一篇:
面试题55-I:二叉树的深度(C++)发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap