首页
学习
活动
专区
工具
TVP
发布

通过对HtmlHelper扩展简化“列表控件”的绑定

ASP.NET MVC通过对HtmlHelperHtmlHelper扩展实现了对不同类型的元素的绑定,它们以扩展方法的形式定义在SelectExtensions中。...当我们在操作这些扩展方法的时候,必须手工地提供以 IEnumerable对象表示的列表项。...如果我们建立一个独立的组件来维护这些预定的列表,那么我们就可以定义一些更加简单的扩展方法以避免手工地指定列表项。...的扩展方法实现基于“列表类别”的绑定 现在我们来定义针对HtmlHelper扩展方法通过从CodeManager获取的Code列表来进行“列表控件”的绑定。...我们为HtmlHelper编写了如下4个扩展方法用于针对DropDownList和ListBox的绑定,在参数中我们无须提供SelectListItem列表,而只需要提供Code和类别即可。

1.3K60

HtmlHelper添加一个RadioButtonList扩展方法

在前面一篇文章中,我们通过对HtmlHelper扩展简化了对DropDownList(Single-Line-Select)和ListBox(Multiple-Line-Select)的绑定,以及对作为数据源的列表进行单独维护...现在我们为HtmlHelper/HtmlHelper添加一个RadioButtonList/RadioButtonListFor扩展方法实现一组RadioButton的绑定。...[源代码从这里下载] 一、RadioButtonListFor的使用 我们先来显示一下扩展的RadioButtonListFor的方法的用法。...} 34: return codeCollection; 35: } 36: } 三、RadioButtonList/RadioButtonListFor扩展方法...如下所示的是RadioButtonList/RadioButtonListFor两个扩展方法的定义,参数codeCategory表示作为数据源的列表类别,而RepeatDirection 枚举类型则代表同组的

898110
您找到你想要的搜索结果了吗?
是的
没有找到

ASP.Net MVC开发基础学习笔记:二、HtmlHelper扩展方法

这里就涉及到一个叫做“扩展方法”的东东了,HtmlHelper 类的扩展方法在 System.Web.Mvc.Html 命名空间中。 ...这些扩展添加了用于创建窗体、呈现 HTML 控件、呈现分部视图、执行输入验证等功能的帮助器方法。那么,有关如何自定义扩展方法请参阅本文第三部分,这里先卖个关子,暂不介绍。 ?...三、随时随地我也能扩展HtmlHelper扩展方法简介 3.1 扩展方法简介   借助MSDN的介绍:“扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型...我们可以回到第一部分对HtmlHelper扩展类-InputExtension类上,它是对于HtmlHelper扩展,那么怎么鉴别它是HtmlHelper扩展呢?...htmlHelper,代表对HtmlHelper类的扩展; 3.3 自定义扩展方法   (1)在Models文件夹下新建一个类,取名为:MyHtmlHelperExt   (2)将MyHtmlHelperExt

66420

ASP.NET MVC HtmlHelper

先贴一下MSDN的HtmlHelper的链接,MSDN对每一个构造函数、属性、方法和扩展方法都做了说明,我这里就常用的部分方法做一下简要的展示。...扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。我们可以回到第一部分对HtmlHelper扩展类-InputExtension类上,它是对于HtmlHelper扩展。...扩展方法的三要素 ?...htmlHelper,代表对HtmlHelper类的扩展; 自定义扩展方法   1.在Models文件夹下新建一个类,取名为:MyHtmlHelperExt   2.将MyHtmlHelperExt设置为...,于是我们将命名空间与HtmlHelper类所在的命名空间保持一致。   4.在页面中我们就可以使用我们自己写的扩展方法了 @Html.MyExtHtmlLabel("EdisonChou")

1.8K30

.NETASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(三)

View中引入的强类型ViewModel生成HTMLDom结构的核心功能都被封装在以HtmlHelper为首的对象模型中,包括HtmlHelper泛型类型,它直接派生自HtmlHelper基类,这两个类型的功能都是围绕着如何生成前端所需要的...的扩展方法才变成灵活的泛型的代码生成接口;因为他们彼此通过强大的泛型类型推断,依次的推断下去,最终会到达扩展方法的内部,如: @Html.EditorFor(model => model.Shopping...HtmlHelper,这样任何围绕HtmlHelper进行扩展扩展方法都会最终使用到类型ViewModel; 8.控制ViewModel...前面一章我们总结了,对于ViewModel的呈现形式只会有两种,一种是Edit一种是Display,不会有其他的呈现形式,所以在围绕着HtmlHelper对象的扩展方法中大多数都是以这种类别区分的,Edit...一组,Display一组; 到目前位置我们已经知道ViewModel与View之间的桥梁是Model元数据,可以简单的理解为HtmlHelper 一系列扩展方法都是通过获取Model元数据信息来控制到底需要输出什么形式的

96780

流畅地HtmlHelper-Asp.Net MVC

HtmlHelper原先的功能不是很多,还好有很多扩展方法,我们能用它来生成一个Input控件,比如: 我们使用上面的代码能生成一个没有值的单行文本框...没有这种扩展方法,那我们只能自己来写一个扩展。...这里不得不感谢微软提供了扩展方法这么好的方式,有了它,一切就变的简单了,先前看到有个朋友问是不是项目该升级到Framework3.5,我觉得是非常有必要的,因为有了它,代码看上去是如此的优美。...因为也是刚尝试接触MVC,看了一下它的源代码,HtmlHelper扩展方法都在 System.Web.Mvc.Html 命名空间内,大概看了下InputExtensions的代码,大致是根据传入的类型...不过HtmlHelper还有很多扩展方法,所以还需要写很多代码,俺会一点一点去添加的。 说实在,MVC好像很多地方要使用那种硬编码,实在不爽,所以要改造一个自己适合的环境还真不容易啊。

53680

ASP.NET MVC的Model元数据与Model模板:将”ListControl”引入ASP.NET MVC

对于ASP.NET MVC来说,我们可以通过HtmlHelper/HtmlHelper扩展方法DropDownList/DropDownListFor和ListBox/ListBox在界面上呈现一个下拉框和列表框.../HtmlHelper扩展生成“ListControl”的HTML 基于四种“列表控件”的HTML生成是通过定义HtmlHelper扩展方法来实现的,如下面的代码所示,定义在ListControlExtensions...中的四个扩展方法实现了针对这四种列表控件的UI呈现。...组成RadioButtonList的单个RadioButton最终是调用HtmlHelper现有的扩展方法RadioButton生成的,而CheckBoxList中的CheckBox则是通过调用我们自定义的...CheckBoxWithValue最终还是调用HtmlHelper现有的扩展方法CheckBox生成单个CheckBox对应的HTML,但是方法值支持布尔值的绑定,并且会生成一个在这里不需要的Hidden

4.8K60

Model验证系统运行机制是如何实现的?

中我们详细介绍了真正用于Model验证的ModelValidator以及相关的提供机制,接下来我们来讨论一下在这个以ModelValidator为核心的Model验证系统中,通过Model绑定得到的数据对象的验证是如何实现的...如下面的代码片断所示,静态ValidationExtensions类中为HtmlHelper定义了4个名为ValidationMessage的扩展方法,为HtmlHelper定义了一个名为...ValidationMessage的扩展方法。...在ValidationMessage中针对验证消息的呈现也可以按照如下的方式调用HtmlHelper<TModel〉的扩展方法ValidationMessageFor来实现。...错误消息在EditForModel方法中的呈现 在一个强类型View中调用HtmlHelper扩展方法EditorForModel将整个Model对象以编辑模式呈现出来时,如果某个属性对应的

1.8K110

在ASP.NET MVC中使用“RadioButtonList”和“CheckBoxList”

在《为HtmlHelper添加一个RadioButtonList扩展方法》中我通过对HtmlHelperHtmlHelper扩展使我们可以采用”RadioButtonList”的方式对一组类型为...二、实例演示 我们还是以《为HtmlHelper添加一个RadioButtonList扩展方法》例子来演示RadioButtonList和CheckBoxList用法。...对于Person的三个基于列表的属性,我们分别调用了自定义的扩展方法RadioButtonListFor和CheckBoxListFor进行了绑定。...三、两组扩展方法具体实现 现在我们简单地来看看RadioButtonList/RadioButtonListFor和CheckBoxList/CheckBoxListFor这两组扩展方法的实现。...我们通过CodeManager得到列表集合,通过HtmlHelper结合 ModelMetadata得到当前数据,最终借助于ListControlUtil的GenerateHtml生成相关的Html。

1.2K80

如何编译安装PHP扩展

安装PHP扩展最简单的办法就是 sudo apt-get install php5-xxx 但有的时候并非我们所愿,源里面并没有我们需要的扩展,这时候就需要我们下载源码自己编译安装了。...PHP有两种可供安装的扩展:一种是PHP原生的但是默认没有安装的,另一种的第三方开发的扩展。...在 /ext 目录下面可以看到所有PHP原生的扩展。 安装原生扩展 以 PHP-intl 为例,这是PHP国际化的扩展。...接下来我们要做的就是在php.ini中启用这个扩展,这一步将会在最后给出示例。 安装第三方扩展 将以这个 扩展为例,这个扩展主要实现了PHP识别条形码的功能。...启用扩展 在php.ini中启用扩展的方式有很多: 直接在php.ini文件中添加 extension=mongo.so,这是最简单直接的方法。

1.8K20

MVC我们需要深入学习的信息

htmlHelper 和UrlHelper 类,这是我们在View层进行页面显示组件的常用类或者是唯一类,但是我们又对它了解哪些呢?我们了解为什么可以使用htmlHelper类?...因为使用了扩展方法,我们自己是否可以正确的定义一些helper类来满足我们自己的业务需求,对于扩展方法我们又理解多少?htmlHelper类中的那几个方法我们是否完全的掌握?...首先就是要在注册路由中添加命名空间,还有一个就是我们在使用htmlHelper进行页面跳转的时候,这个Area的设置也是必不可少的?...Action是如何运行的?而使用了Area以后为什么可以定义到不同Area的相同Controller以及Action之上呢?...我们应该如何来避免数据传递带来的程序bug呢?

41810
领券