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 助手方法自动显示在页面上。

1 0
原创粉丝点击