下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MVC基础系列说谈HtmlHelper,自定义,扩展HtmlHelper在视图中可以直接写Html,也可以使用HtmlHelper来创建。< XMLNAMESPACE PREFIX ="O" />例如:<input id="tbxcontent" /><%=Html.TextBox("tbxname") %>页面源码:<input id="tbxcontent" /><input id="tbxname" name="tbxname
2、" type="text" value="" />ViewPage的Html属性就是一个HtmlHelper类型的属性。它的用于创建Html的一些方法例如:TextBox,是通过扩展方法来实现。FormExtensions Represents support for HTML in an application.InputExtensions Represents support for HTML input controls in an application.LinkExtensions Represents support for
3、 HTML links in an application.RenderPartialExtensions Provides support for rendering a partial view.SelectExtensions Represents support for making selections in a list.TextAreaExtensions Represents support for HTML textarea controls.ValidationExtensions Provides support for validating the input from
4、 an HTML form.它们位于System.Web.Mvc.Html(一)InputExtensions它能创建5种类型的Html控件(返回5种类型的Html控件的字符串)。·CheckBox·RadioButton·TextBox·Password·Hidden每一种有多个重载,用于满足不同参数。以TextBox为例。public static string TextBox(this HtmlHelper htmlHelper, string name);public static string TextBox(this HtmlHel
5、per htmlHelper, string name, object value);public static string TextBox(this HtmlHelper htmlHelper, string name, object value, Dictionary<string, object> htmlAttributes);public static string TextBox(this HtmlHelper htmlHelper,string name, object value, object htmlAttributes);<%=Html.TextBox
6、("tbxname") %>这个方法首先调用:public static string TextBox(this HtmlHelper htmlHelper, string name)这个方法,然后最终调用: public static string TextBox(this HtmlHelper htmlHelper,string name,object value,IDictionary<string, object> htmlAttributes)return htmlHelper.InputHelper(InputType.Text, name,
7、value, (value = null),false,true, true, htmlAttributes);然后调用:htmlHelper.InputHelper这个方法。以TextBox来示例:(1) 基本<%=Html.TextBox("tbxname") %>(2) 添加css<%=Html.TextBox("tbxname",string.Empty, new class="cssText")%>(3)绑定现在不提供强类型,以一个ViewData为例<%=Html.TextBox("
8、tbxname",ViewData"test", new class="cssText")%>(二)FormExtensions它用于显示Form。有三种。·BeginForm·BeginRouteForm·EndForm其中,BeginRouteForm是以路由方式提交表单。例如:routes.MapRoute("Detail","controller/action/id",new Controller = "News", action = &qu
9、ot;Detail", id = 2 ,new id=new SelfConstraint();这是一个路由,然后:<% using (Html.BeginRouteForm("Detail", new controller = "Login", action = "Validate" )%> <div class="divMargin"><span class="spanHeader">用户帐号:</span><%=Html.Te
10、xtBox("tbxUserId")%></div><div class="divMargin"><span class="spanHeader">用户密码:</span><%=Html.Password("tbxUserPW")%></div><div class="divMargin"><input type="submit" value="登录" />
11、;</div><% %>其中的Detail 是路由的名称。BeginForm可以用using的方法关闭form,来代替EndForm再写一个BeginForm的例子:<%Html.BeginForm("Validate", "Login"); %><div class="divMargin"><span class="spanHeader">用户帐号:</span><%=Html.TextBox("tbxUserId"
12、) %></div><div class="divMargin"><span class="spanHeader">用户密码:</span><%=Html.Password("tbxUserPW") %></div><div class="divMargin"><input type="submit" value="登录" /></div><%Html.En
13、dForm(); %>注意的是,开始与结束没有等号,且,都有分号结束符。(三)LinkExtensions用于提供html链接,有两种方法:·ActionLink·RouteLink每一类方法有多种重载。public static string ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName) 这是ActionLink的一个方法,它可以链接到同控制器下的某一动作中。例如:<%=Html.ActionLink("到新闻列表页","New
14、sList") %>然后,传递参数:<%=Html.ActionLink("到新闻详细页", "Detail", new id=2)%>下面是一个RouteLink的方法public static string RouteLink(this HtmlHelper htmlHelper, string linkText, object routeValues) <%=Html.RouteLink("到新闻列表页", new controller="News",action="
15、;NewsList")%> <%=Html.RouteLink("到新闻详细页", new action = "Detail", id = 2 )%>(四)自定义HtmlHelper自定义一个Labelpublic class LabelHelperpublic static string Label(string target, string text)return String.Format("<label id='0'>1</label>", target, t
16、ext);在使用时:要添加名字空间进来:<% Import Namespace="Web.Models.SelfHelper" %>然后这样使用:<%=LabelHelper.Label("label1","这是一个标签")%>为了和HtmlHelper提供的控件一致,扩展一下HtmlHelper,以一个span为例:public static class HtmlExtensionspublic static string Span(this HtmlHelper helper, string strId,s
17、tring strContent) return string.Format("<span id="0">1</span>", strId, strContent);使用:同样也要引用空间,然后:<%=Html.Span("span1","这是一个span") %>(五) TagBuilder在自定义HtmlHelper时,可以通过TagBuilder来创建。下边列出几个常用的方法: public void AddCssClass(string value);public voi
18、d GenerateId(string name);public void SetInnerText(string innerText);public void MergeAttribute(string key, string value);现在还是来创建一个span:public static string Span(this HtmlHelper helper, string strId,string strcontent, string strClass)TagBuilder builder = new TagBuilder("span");builder.GenerateId(strId);builder.SetInnerText(strcontent);builder.AddCssClass(strClass);builder.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白酒制曲工安全培训效果水平考核试卷含答案
- 松焦油工岗位指挥能力考核试卷含答案
- 气体净化工岗位技能安全考核试卷含答案
- 戏服制作工岗位设备考核试卷含答案
- 糖汁过滤工个人技能评优考核试卷含答案
- 拖拉机涂装加工生产线操作调整工岗前深度考核试卷含答案
- 2026氢能源技术行业市场供需潜力挖掘及储能系统规划分析研究报告
- 2026中国光刻胶化学品行业安全生产标准与风险管理体系
- 2026金融科技行业市场深度研究及数字化转型趋势和金融服务创新分析报告
- 2026中国膜电容去离子技术产业化可行性论证报告
- 2026稀土储氢材料行业市场发展分析及前景趋势与投融资战略研究报告
- 《智能网联汽车规划与决策技术》课件 项目4 常见的行为决策方法
- 2026年智慧海洋产业园区规划:功能布局与产业协同设计
- 个人暗股合同协议书
- 2025-2026学年人美版(2024)小学美术三年级上册《果篮传情谊》教学设计
- 认知障碍患者护理课件
- 螺栓培训课件视频
- GB 30035-2021船员健康检查要求
评论
0/150
提交评论