【asp源码栏目提醒】:网学会员--在 asp源码编辑为广大网友搜集整理了:在 ASP NET MVC 中创建自定义 HtmlHelper - 计算机教材绩等信息,祝愿广大网友取得需要的信息,参考学习。
在
ASP.NET MVC 中创建自定义 HtmlHelper 在
ASP.NET MVC应用程序的开发中我们常碰到类似Html.Label或Html.TextBox这样的代码它将在网页上产生一个label或input标记。
这些HtmlHelper的扩展方法有些像WebForm中的控件只需传入一些参数即可生成相应的HTML代码。
本文将介绍创建HtmlHelper的方法。
Html.Textbox方法的返回值是MvcHtmlString它生成了一些HTML代码。
创建HtmlHelper就像在生成HTML代码。
下面以一个带有简要描述功能的链接HtmlHelper为例介绍创建自定义HtmlHelper的方法。
它将显示一个链接并在下方简要介绍该与该链接内容有关的信息。
在某些带有简要描述的项列表页上可能会需要类似的功能。
最后的结果预览如下图。
上面使用了3次自定义的HtmlHelper每次生成的代码如下 1 2链接标题 3链接描述 4 可能稍微有点复杂因为有了标签的嵌套。
做好准备工作以后新建一个静态类LinkWithDescriptionExtensions添加静态方法LinkWithDescription代码如下 代码 1 /// 2 /// 带描述的链接扩展方法 3 /// 4 ///要扩展的HtmlHelper类 5 ///标题 6 ///链接地址 7 ///描述 8 /// HTML代码 9 public static MvcHtmlString LinkWithDescriptionthis HtmlHelper htmlHelper string title string url string description 10 11 // 生成与标题链接有关的HTML代码 12 TagBuilder titleContainer new TagBuilderp // 标题链接容器p 13 TagBuilder titleLink new TagBuildera // 标题中的文字要有链接所以包含在a标签内 14 titleLink.MergeAttributehref url // 为a添加href属性并指定链接地址 15 titleLink.SetInnerTexttitle // 标题文字 16 titleContainer.InnerHtml titleLink.ToString // 将a放到p中 17 titleContainer.AddCssClassLinkTitle // 为标题添加样式 18 19 // 生成与链接描述有关的HTML代码 20 TagBuilder descriptionContainer new TagBuilderp // 连接描述容器p 21 descriptionContainer.InnerHtml description // 描述文字 22 descriptionContainer.AddCssClassLinkDescription // 为描述添加样式 23 24 // 将上述元素放入一个DIV中 25 TagBuilder div new TagBuilderdiv 26 div.InnerHtml string.Format01 titleContainer.ToString descriptionContainer.ToString 27 28 // 返回生成的HTML代码 29 return MvcHtmlString.Creatediv.ToString 30 先理清结构再使用TagBuilder生成HTML代码是比较方便的。
这里也可以使用拼接字符串的方式来生成HTML代码只要最后得到所需的HTML代码就可以但是我个人不建议使用拼接字符串的方式这样不仅思维容易混乱而且容易出错。
使用TagBuilder既结构清晰又不容易出错。
在ASPX页中可以使用 1 2 3 来调用上面的扩展方法这里的链接标题、链接地址和描述等信息可以通过ViewData等方式传入。
在Action中写 代码 1 /// 2 /// Demo 3 /// 4 /// Demo视图 5 public ActionResult Demo 6 7 // 创建链接信息列表 8 List links new List 9 links.Addnew LinkInfo Description 这是测试链接1的描述 Title 测试链接1 Url 10 links.Addnew LinkInfo Description 这是测试链接2的描述 Title 测试链接2 Url 11 links.Addnew LinkInfo Description 这是测试链接3的描述 Title 测试链接3 Url 12 13 14 ViewDataLinks links 15 16 return View 17 在ASPX页中写 1 4 5 示例下载 本文适用于
ASP.NET MVC 2 Tag标签:
ASP.NETMVC
上一篇:
在线作业系统说明
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a