C#属性默认值设置
关于在MVC中view中设置默认值,可以象如下设置:
1、关于VIEWMODEL的部分
如果是C# 6.0,网上资料查到说可以
public int X { get; set; } =
如果语法不支持,只能改回.net 2.0的写法。
public class UserType
{
private int _UserType = 1;
public int UserTypeID
{
get
{
return this._UserType;
}
set
{
this._UserType = value;
}
}
}
需要纠正一下的是,在属性上通过Attribute加[DefaultValue()]的方法是无效的。
//无效
[DefaultValue()]
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="" />
所以我们实际可以这样使用:
VIEWMODEL
public class UserType
{
public int UserTypeID { get; set; } [Required(ErrorMessage = "请输入用户类型名称")] public string TypeName { get; set; }
[Required(ErrorMessage = "请输入用户类型排序")]
[Range(-, , 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 == )
{
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#属性默认值设置的更多相关文章
- HTML标签CSS属性默认值汇总
HTML标签CSS属性默认值,在你需要还原默认值的时候比较有用. 以前一直在找这份文档,今天偶然在网上看到了.除了inline和block的定义,主要是要注意body|h1~h6|blockquote ...
- typescript 关于class属性类型定义被属性默认值覆盖的问题及解决方式
问题来源于 React.component的第二个参数的类型定义问题,我构建了以下简化demo,方便描述问题: class P<STATE> { public state: STATE; ...
- php与js中函数参数的默认值设置
php函数参数默认值设置: <?phpfunction test($val=3){ echo $val."<br/>";}test(11);test();?& ...
- js方法参数默认值设置
这里的默认值设置 很容易以为和php相似 function(v1,v2="test") { alert(v2); } 但这样是不对的,js方法,如需传参,甚至可以不用预定义(也就是 ...
- sqlserver中GUID的默认值设置
sqlserver中GUID的默认值设置 YID uniqueidentifier not null default (NEWSEQUENTIALID()), //有序GUID(只能用于表设计的时候的 ...
- JIRA描述默认值设置
JIRA描述默认值设置 Setting a Default Value in the Description Field 转自https://confluence.atlassian.com/jira ...
- typescript 属性默认值使用箭头函数 this指向问题
今天注意到前端小伙伴用react 定义component class的方法的时候是通过箭头函数的方式,表示好奇. class Test extends React.Component { public ...
- yii2中textarea中的默认值设置
1. view中显示文本域的位置 <?= $form->field($goods_model, 'goods_introduce')->textArea(['class'=>' ...
- asp.net EF model中的默认值设置
在做数据库规划时,通常会规划一些系统字段,也就是由数据库本身自行指定默认值到这个字段上,创建新的“创建时间(CreateDate)”字段就会常常这样设计. 如果希望能有默认值,且让.net 程序在新增 ...
随机推荐
- Android(java)学习笔记3:线程的优先级
1. Java线程的优先级从1到10级别,值越大优先级越高线程默认优先级是5.值越大优先级越高 (1) 继承自Thread类创建线程类: package cn.itcast_04; public cl ...
- Android数字签名解析(一)
一.数字签名概述 所谓"数字签名"就是通过某种password运算生成一系列符号及代码组成电子password进行签名,来取代书写签名或印章. 数字签名有两种功效:一是能确定消息 ...
- python:正则模块
1,正则表达式 正则表达式是用来做字符串的匹配的,正则有他自己的规则,和python没有关系,一种匹配字符串的规则. 2,字符组 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表 ...
- 2018.9.10 Java语言中的int及char数据类型的长度分别为(32,16 )
Byte类型 (8) Character类型(16) Integer类型 (32) Double类型 (64) Long类型 (64)
- 使用pako.js实现gzip的压缩和解压
poko.js可至Github下载:https://github.com/nodeca/pako 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ...
- HDU 1111 Secret Code(数论的dfs)
Secret Code Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- Storm处理流程, 基本参数配置
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAksAAAG/CAYAAABIVpOQAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF
- JVM 监控以及内存分析
1 内存分析1.1 jmap -histo 命令pid=`jps | awk '{if ($2 == "Jps") print $1}'`jmap -histo $pid > ...
- Jedis连接redis客户端
1 单点的redis利用jedis客户端连接 如何连接 //1 利用jedis连接对象操作redis @Test public void test01(){ //构造一个具有连接信息的jedis对象 ...
- MySQL提升课程 全面讲解MySQL架构设计-索引
索引是什么? 索引是帮助MySQL高效获取数据的数据结构. 索引能干什么? 提高数据查询的效率. 索引:排好序的快速查找数据结构!索引会影响where后面的查找,和order by 后面的排序. 一. ...