asp.net mvc 3 常用 -尊龙游戏旗舰厅官网
http://blog.csdn.net/churujianghu/article/details/7297358
1、asp.net mvc 3 如何去除默认验证
这个默认验证是在web.config配置文件中设置的
这个是去掉所有model的默认验证,然后你可以在model中加上自己的验证,这样哪些属性需要验证,哪些不需要 就看你自己了
示例代码:
view code publicclass movie{
publicint id { get; set; }
[required(errormessage="必须输入标题")]
publicstring title { get; set; }
[required(errormessage="必须输入发行日期")]
public datetime releasedate { get; set; }
[required(errormessage="必须制定种类")]
publicstring genre { get; set; }
[required(errormessage="必须输入票价")]
[range(1,100,errormessage="票价必须在 1 到 100 元之间")]
publicdecimal price { get; set; }
[stringlength(5,errormessage="最多允许输入5个字符")]
publicstring rating { get; set; }
publicstring description { get; set; }
}
2、asp.net mvc 3 在视图中如何创建html标签,(在视图中把含有标签的字符编译成相应的标签)
在asp.net mvc 3 中的视图中字符串输出是默认按原字符串输出的,如果需要把字符串中的标签字符编译成相应的标签
则需要在输出的时候创建标签:@mvchtmlstring.create(viewbag.regionhtml); viewbag.regionhtml是包含标签的字符串
3、asp.net mvc 3 中 报错:mvc 3 属性不能设置为“null”值。必须将该属性设置为类型为“int32”的非 null 值。
这是因为数据库中的表中的字段中有null值(如:int,double,datetime 等)
这里只需要把数据库中相应数字类型的的字段的值中的null改掉就行了,比如把数字类型null值改成0,字符类型null值改成空格,日期类型null值改成日期
4、数据库表需要加s
asp.net mvc 3 中有个奇怪的现象,在使用efcodefirst后很多时候,数据库中的表需要加s,比如原来数据库表product
现在要变成products,不然很多时候会报错:对象名 'dbo.products' 无效
5、asp.net mvc 3 中如何使用单选按钮 radiobutton
这个比较简单,两种方式都行 @html.radiobutton 或 @html.radiobuttonfor
1、 @html.radiobutton("sex",true)男 2、 @html.radiobuttonfor(model=>model.sex,true)男
@html.radiobutton("sex",false)女 @html.radiobuttonfor(model=>model.sex,false)女
这里的sex就是实体属性,数据类型是bool类型,它会自动匹配数据库的值,相同的选中
6、asp.net mvc 3 中如何引用js文件
这里的calendar4.js文件直接放在网站自动生成的scripts文件夹中
7、asp.net mvc 3 文本框自定义单击事件 onclick事件
有两种方式
1、直接写html标签,和平时一样
2、这样写:@html.textbox("birthday", model.birthday, new { onclick = "mycalendar.setdate(this)",style="width:500px;" })
数据交互上1和2没什么大的区别,但是如果你写了验证,1是不会引用错误样式,2会自动关联错误样式。
8、asp.net mvc 3 使用下拉列表 dropdownlist
首先在控制器中需要得到一个selectlist控件放到上下文中(viewdata)
控制器代码如下:
view code private crmdbcontext db = new crmdbcontext(); var list = db.partments.tolist(); viewdata["partmentddl"] = new selectlist(list, "id", "partname",employee.partmentid);视图中:
?1、 @html.dropdownlist("partmentid", (selectlist)viewdata["partmentddl"], "--this one--") 2、 @html.dropdownlistfor(model => model.partmentid, (selectlist)viewdata["partmentddl"], "--this one--") |
这里的partmentid是实体属性,如果viewdata中的selectlist中存在partmentid值则自动选中该值。"--this one--"在下拉列表中添加一个选项,如果不需要添加,则填null
9、asp.net mvc 3 具有键“xxx”的 viewdata 项属于类型“system.int32”,但它必须属于类型“ienumerable
网上有人说是:错误主要原因是在提交处不认识原来的下拉列表(来自这里)他的解决方法是:在控制器中的接受处理的action中重复构建dropdownlist的代码,比如
view code public actionresult create(){var actionlist = db.actions.tolist();viewdata["actionddl"] = new selectlist(actionlist, "id", "getmoactname");var popedomlist = db.popedoms.tolist();viewdata["pepedomddl"] = new selectlist(popedomlist, "id", "property");return view();}//// post: /actionpopedoms/create[httppost]public actionresult create(actionpopedoms actionpopedoms){var actionlist = db.actions.tolist();viewdata["actionddl"] = new selectlist(actionlist, "id", "getmoactname");var popedomlist = db.popedoms.tolist();viewdata["pepedomddl"] = new selectlist(popedomlist, "id", "property");if (modelstate.isvalid){db.actinpopedoms.add(actionpopedoms);db.savechanges();return redirecttoaction("index");}return view(actionpopedoms);} 大家注意这两个方法,第一个action方法是展示新增页面用的,也就是说你再其他地方点击新增功能时,通过这个方法在转到视图,这个视图就是新增页面,在这里方法里构建了两个下拉列表,当我们点击相应按钮确定新增后,请求就被第二个action方法,这个方法传进来的是一个实体对象(这里为什么是一个实体对象就不具体说明),在这里方法里面就是执行相关新增的功能的,在这里新增成功后会转到action方法index方法中,如果新增失败则转到当前页面(这里代码 return view(actionpopedoms)就是新增的页面),问题就出在这里,如果第二个方法没有重新构建下拉列表的代码,则这里返回当前页面后,页面就不认识第一个action方法中构建的下拉列表,所以页面最终报错是 具有键“xxx”的 viewdata 项属于类型“system.int32”,但它必须属于类型“ienumerable
10、asp.net mvc 3 在razor view页面中如何导入命名空间呢
?@using mynamespace |
11、asp.net mvc 3 中如何获得请求的url路径
?string url = "";//url全部分 url = httpcontext.current.request.url.tostring(); |
12、asp.net mvc 3 中 tempdata、viewdata、viewbag三者区别
tempdata viewdata viewbag都可以用来保存数据,它们之间的区别如下: tempdata保存在session中,controller每次执行请求的时候,会从session中先获取tempdata,而后清除session,获取完tempdata数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。具体代码层面,tempdata获取过程是通过sessionstatetempdataprovider.loadtempdata方法从controllercontext的session中读取数据,而后清除session,故tempdata只能跨controller传递一次。viewdata生命 周期和view相同,仅对当前view有效。 viewbag和viewdata生命周期相同,也是对但前view有效,不同的是viewbag的类型不再是字典的键值对结构,而是dynamic动态类型,属mvc3里面新增的部分。-------来自地址
13、asp.net mvc 3 中使用单选按钮radiobutton
这里为了应急所需,暂只介绍一种用法代码如下
@html.radiobutton("sex", model.sex, model.sex)
男
@html.radiobutton("sex", !model.sex, !model.sex)
女
@html.validationmessagefor(model => model.sex)
总结
以上是尊龙游戏旗舰厅官网为你收集整理的asp.net mvc 3 常用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: spark rdd解密
- 下一篇: node.js学习笔记(21) expr