这是我针对即将发布的ASP.NET MVC 2所撰写的贴子系列的第一篇,这个博客贴子将讨论 ASP.NET MVC 2中新加的强类型HTML辅助方法。

现有的HTML辅助方法

ASP.NET MVC 1中发布了一套HTML辅助方法,可以用来在视图模板中帮助生成HTML界面。例如,要输出一个文本框,你可以在你的.aspx视图模板中使用Html.TextBox()辅助方法编写下列代码:

上面辅助方法的第一个参数提供了文本框的名称及id,第二个参数指定了它该有的值,然后上面的辅助方法会显示象下面这样的HTML到浏览器:

新的强类型HTML辅助方法

大家对ASP.NET MVC 2要求的一个常用特性是,要我们支持强类型的HTML辅助方法,这样的辅助方法使用 lambda 表达式来引用传到视图模板中的模型或视图模型。这可以促成更好的编译时视图检查(可以在编译时发现缺陷,而不是在运行时),还可以促成视图模板中更好的代码intellisense支持。

新的强类型HTML辅助方法现在已经内置于ASP.NET MVC 2中了,这些方法使用"Html.HelperNameFor()”的命名规范。例如,Html.TextBoxFor(), Html.CheckBoxFor(), Html.TextAreaFor()等等。它们支持使用lambda表达式来指定元素的名称和id,以及要显示的值。

例如,除了上面的Html.TextBox()辅助方法外,使用ASP.NET MVC 2,我们现在还可以使用新的Html.TextBoxFor()辅助方法:

注意上面,我们不再需要指定 “ProductName” 字符串参数,lambda表达式是相当灵活的,除了值以外,我们还可以获取我们模型对象中的属性/字段的名称。

因为这些HTML辅助方法是强类型的,编写lambda表达式时我们还可以在Visual Studio中得到完整的intellisense支持:

显示的HTML跟前面的后期绑定的HTML辅助方法版本的输出是一样的:

内置于ASP.NET MVC 2中的强类型HTML辅助方法列表

ASP.NET MVC 2对下列强类型的HTML辅助方法提供内置支持:

HTML元素辅助方法:

Html.TextBoxFor()

Html.TextAreaFor()

Html.DropDownListFor()

Html.CheckboxFor()

Html.RadioButtonFor()

Html.ListBoxFor()

Html.PasswordFor()

Html.HiddenFor()

Html.LabelFor()

其他辅助方法:

Html.EditorFor()

Html.DisplayFor()

Html.DisplayTextFor()

Html.ValidationMessageFor()

我会在本系列的后期贴子中讨论ASP.NET MVC2中改进了的“自动脚手架(auto-scaffold)"功能时,对新的Html.EditorFor() 和Html.DisplayFor()辅助方法做进一步介绍。在本系列的下一个博客贴子中讨论ASP.NET MVC2中改进了的验证支持时,我们还将使用Html.ValidationMessageFor()辅助方法。

Scaffolding中的强类型HTML辅助方法

VS 2008 和 VS 2010两者在用“添加视图”命令“生成(scaffolding)”新的强类型视图模板时,现在都会默认使用新的强类型HTML辅助方法。

例如,假设我们有一个象下面这样的简单 “ProductsController” 类,有一个“Edit” action方法,会为“Product”模型类显示一个编辑表单:

我们可以使用Visual Studio在Edit action方法中右击,选择“添加视图”上下文菜单命令来创建一个视图模板,我们将选择创建一个“Edit”模板,该模板是使用Product对象来生成的(scaffolded):

在ASP.NET MVC 2中,默认生成的视图模板现在使用了新的强类型HTML辅助方法来引用Product模型对象:

结语

包含在ASP.NET MVC2中的强类型HTML辅助方法提供了一个很好的方式来在视图模板中得到更好的类型安全。这促成了对你的视图的更好的编译时检查(允许你在编译时,而不是运行时发现错误),还在Visual Studio中编辑视图模板时支持更丰富的intellisense。

希望本文对你有所帮助,

Scott

html辅助方法以及常用属性值,ASP.NET MVC 2博客系列之一:强类型HTML辅助方法相关推荐

  1. Asp.net MVC 仿照博客园的简单网站首页 列表设计

    本来我打算采用ajax提交请求,异步的请求获取数据,但是我发现如果这样的话就会拖慢开发的进度,拖长时间.所以在这篇博客中仿照首页的列表设计其实和左侧列表网站分类采用了同样的方式,通过局部视图的方式呈现 ...

  2. html辅助方法以及常用属性值,工作总结 @Html 辅助方法 为 生成的 标签设置元素属性 htmlAttributes 一个对象,其中包含要为该元素设置的 HTML 特性。...

    @Html.RadioButtonFor(m => m.IsJianChe, true, new { @style = "width: 18px; height: 18px;" ...

  3. 看板方法不是方法论 | David博客系列 | Agilean学院出品

    这篇David博客系列文章阐述了看板方法反模式之"Kanban是方法论",由Agilean学院刘永鹏翻译.张明评审,李淳审校 使用看板方法让我们的产品质量一团糟!因为我们不再做测试 ...

  4. iOS开发常用三方库、插件、知名博客

    TimLiu-iOS iOS开发常用三方库.插件.知名博客等等,期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交Issues即可). 持续更新... 版本:Objective- ...

  5. ASP.NET MVC 3.0学习系列文章—Model in ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章- ...

  6. ASP.NET MVC 3.0学习系列文章--Razor and ASP.NET MVC 3.0

    系列文章 ASP.NET MVC 3.0学习系列文章-序 Razor and ASP.NET MVC 3.0 ASP.NET MVC 3.0学习系列文章-Controllers in ASP.NET ...

  7. CSDN博客里面挂广告的推荐方法

    CSDN博客里面挂广告的推荐方法 此文章版权归JAVA世纪网()和CSDN()所有. JAVA世纪网地址: CSDN博客地址: 如转载,请保留此说明和完整的页面内容. 感谢 前言 大家应该注意到了,在 ...

  8. CSDN博客图片自定义及去除水印方法

    1 水印 在CSDN中编写博客并上传图片时,出于版权保护的要求,CSDN会在图片右下角默认添加博客地址的水印(如下图右下角).但有些时候出于某些原因,我们并不想让上传的图片显示水印,或者想自定义水印的 ...

  9. WordPress博客网站搬家和换域名方法

    WordPress博客网站搬家和换域名方法 方案一 开设个人博客的朋友使用WordPress不在少数,那么也难免不了更换空间和域名的情况,由于笔者亲历了一次更换空间和域名的情况,将博客从AAA.com ...

最新文章

  1. Spring Security OAuth 2开发者指南译
  2. 设计模式学习(十六) 模板方法模式
  3. 【数理知识】《随机过程》方兆本老师-第3章-Markov 过程
  4. java执行Linux shell命令或者Window cmd命令
  5. zabbix磁盘的自动发现与磁盘指标监控
  6. BZOJ2654: tree 二分答案+最小生成树
  7. 《王者荣耀》回应故障:3个工作日内补发排位赛星积分丢失
  8. 昔日最有前途的 Java 最终还是败给了晚辈 Python
  9. [转]GeoHash核心原理解析
  10. 微服务架构下的数据一致性:概念及相关模式
  11. sql分组排序mysql_SQL分组排序
  12. Pr删除视频中的某一帧
  13. 【学术相关】博士开始内卷了吗?
  14. QT5+zint库实现条形码条形码(一)
  15. 概论_第8章_假设检验的基本步骤__假设检验的类型
  16. 获得100000+点击的程序员高薪职业建议!
  17. 大数据开发常用的编程语言有哪些?
  18. 关于遥感中影像数据的组织方法BIL/BSQ/BIP
  19. Day 12 C. Interesting Story
  20. mysql 计算两个日期之间的工作日天数

热门文章

  1. 设计师必备超人气设计素材网站
  2. 设计实用素材|促销海报设计技巧
  3. UI素材资源|Material风格的插图,有品位的素材
  4. 引用和指针自增的不同
  5. QT打开文件选择框(demo code)
  6. cuSPARSE库:(十)cusparseCreateMatDescr()
  7. C语言求一个数的倒数的平方根近似值
  8. highgui java opencv_OpenCV在C Qt应用程序中的highgui
  9. ctp系统配套服务器,CTP系统
  10. oracle rollup 排序,Oracle教程之rollup用法