C#属性默认值设置
2023-09-11 14:21:59 时间
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();
}
相关文章
- c# 多线程使用总结
- C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
- [C#基础]c#中的BeginInvoke和EndEndInvoke
- C#反射获取属性值和设置属性值
- C#,入门教程(42)——各种括号“()[]{}<>“的用法总结
- C#操作快捷方式(获取快捷方式属性、创建快捷方式)
- C#解压和压缩文件
- C#的属性的定义
- C# 创建网站 无法启动与停止的问题
- 《C#零基础入门之百识百例》(四十五)类的属性 -- 单例模式
- 中缀表达式转后缀表达式--C# 代码实现
- C#常用的form窗体属性(最大化、最小化、窗体居中)
- C# Thread.CurrentThread.Name 这个属性只能设置一次
- C#反射设置属性值和获取属性值
- C# WinForm设置透明
- C#属性默认值设置
- C#在方法或属性中使用sealed时的操作与原理
- C#-ConfigurationManager类引用方法
- 【C#/WPF】如何查看System.Windows.Interactivity.dll中EventTrigger的EventNames属性有哪些
- 【转】【C#】实现依赖注入