asp.net mvc3 初学者 用法小结(2)
来源:互联网 发布:乔任梁死亡真相知乎 编辑:程序博客网 时间:2024/04/27 16:15
一、FormCollection
FormCollection用来在controller中获取页面表单元素的数据。它是表单元素的集合,包括<input type="submit" />元素。
Asp.NET MVC在进行模型绑定时,会将用户输入绑定到FormCollection中,默认情况下,FormCollection中的内容与Request.Form一致,但是当我们自定义
ModelBinder时,会影响FormCollection的取值,而Request.Form不会影响。这样如果我们在自定义ModelBinder时依旧使用Request.Form,自定义ModelBinder就毫无用处。
二 、ViewBag
ViewBag 允许我们向视图传递信息而不需要首先定义强类型的 Model。ViewBag 是动态对象,这意味着你可以使用 ViewBag.Foo 或者 ViewBag.YourNameHere 形式的属性而不需要预先定义这些属性。
三、下拉列表@Html.DropDownList
用法实例:
@Html.DropDownList("GenreId", String.Empty)
这里使用了 HtmlHelper ,一个用于视图中生成 Html 的实用工具,使用 HtmlHelper 可以保持我们的视图清楚和易读。Html.DropDownList 助手方法由
ASP.NET MVC 提供,后面可以看到,我们也可以提供自己的助手方法进行扩展。Html.DropDownList 方法需要两个参数,从哪里获取显示用的列表,和哪一个值需要
被预先选中,方法的第一个参数, GenreId,告诉DropDownList 从模型对象或者 ViewBag 对象中寻找名为 GenreId 的属性值,第二个参数用来指出下拉列表默认选中的值。
这是创建专辑的表单,所以,没有需要预先选中的值,这里传递了一个 String.Empty 。
tips:
- 在controller中,return View(album)中,在对应的页面html中,先引用一下model.Album(using),页面中@model即为controller的album的值。
- 传递到视图的下拉列表的值使用 SelectList 对象表示。
- 当 Action 方法的参数是模型类型的时候,ASP.NET MVC 将会试图使用表单中的数据来填充对象的属性,它通过检查表单参数的名字是否匹配模型对象的属性来进行匹配。
- 当使用标准的模型方式生成视图的时候,表单会使用模型对象的属性名称来生成表单输入项目的名称,这样,在发出表单的时候,请求参数就会正好匹配模型的属性了。
- 通过访问 ModelState 的 IsValid 属性就可以检查模型是否通过验证。如果没有通过验证,与 GET 处理的时候相同,我们通过 ViewBag 传递下拉列表的值,通过模型传递其他的数据,验证的提示信息由 @HtmlValidationMessageFor 助手方法自动显示在页面上。
- asp.net mvc3 初学者 用法小结(2)
- asp.net mvc3 初学者 用法小结
- ASP.NET MVC3细嚼慢咽---(4)Controller用法
- ASP.NET MVC3细嚼慢咽---(2)模板页
- ASP.NET MVC3细嚼慢咽---(2)模板页
- 初探 Asp.net MVC3
- Asp.net MVC3基础
- asp net mvc3 ViewBag
- Asp.net MVC3基础
- ASP.NET MVC3实践
- asp.net mvc3总结
- Asp.Net MVC3+ExtJS4
- ASP.NET MVC3 概要
- ASP.NET MVC3--视图
- ASP.NET MVC3
- asp.net mvc3 HtmlHelpers Extension 和 Razor Declarative 用法
- asp.net mvc3中母版页+局部刷新的用法
- ASP.NET MVC3介绍(ASP.NET MVC3系列文章一)
- 策略模式
- js保留两位小数
- CentOS7自定义开机启动项
- 函数work2
- window平台使用bat批处理实现进程守护
- asp.net mvc3 初学者 用法小结(2)
- 【oracle】查看schema使用情况
- C++第4次试验:项目一(实验)
- C++第四次实验-作业报告(2,3,4)
- C#学习之PadLeft的意思
- 快速排序
- C++指针错误
- 在OkHttp的使用过程中出现下列问题Picasso detected an unsupported OkHttp on the classpath.
- cd命令