ASP.NET MVC 3.0 HTML辅助方法

 

  HTML辅助方法(html helper)是用来帮助生成HTML的方法。

  1、HTML辅助方法应用实例

  ◊ 生成form元素

@using (Html.BeginForm("About", "Home")) {
@Html.TextBox("ProductName")
}

  生成的html代码如下:

<form method="post" action="/Home/About">
<input id="ProductName" type="text" value="" name="ProductName">
</form>

  ◊ 生成TextBox元素

@Html.TextBox("ProductName", "产品名称", new { id = "txtProductName", @class = "txt" })
public static MvcHtmlString TextBox(this HtmlHelper htmlHelper, string name, object value, object htmlAttributes);

  生成html代码如下:

<input id="txtProductName" class="txt" type="text" value="产品名称" name="ProductName">
@Html.TextBox("ProductName", "产品名称", ViewBag.Attributes as IDictionary<string, object>)
public static MvcHtmlString TextBox(this HtmlHelper htmlHelper, string name, object value, IDictionary<string, object> htmlAttributes);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; using System.Collections; namespace MvcTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index()
{
IDictionary<string, object> attr = new Dictionary<string, object>();
attr.Add("id", "txtProductName");
attr.Add("style", "border:1px solid #666666;");
attr.Add("class", "txt");
ViewBag.Attributes = attr; return View();
} }
}

  生成的html代码:

<input id="txtProductName" class="txt" type="text" value="产品名称" style="border:1px solid #666666;" name="ProductName">

  ◊ 生成DropDownList

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; using System.Collections; namespace MvcTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index()
{
List<SelectListItem> lst = new List<SelectListItem>();
lst.Add(new SelectListItem { Text = "数码电子", Value = "1" });
lst.Add(new SelectListItem { Text = "服装服饰", Value = "2" });
lst.Add(new SelectListItem { Text = "珠宝首饰", Value = "3" });
ViewBag.Category = lst;
ViewBag.Category = new SelectList(lst, "Value", "Text", "2"); return View();
} }
}
@Html.DropDownList("Category",  "请选择")

  生成的HTML代码:

<select id="Category" name="Category">
<option value="">请选择</option>
<option value="1">数码电子</option>
<option selected="selected" value="2">服装服饰</option>
<option value="3">珠宝首饰</option>
</select>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; using System.Collections; namespace MvcTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/ public ActionResult Index()
{
List<Models.Province> lst = new List<Models.Province>();
lst.Add(new Models.Province { ProvinceID = 1, ProvinceNo = "100000", ProvinceName = "北京" });
lst.Add(new Models.Province { ProvinceID = 2, ProvinceNo = "110000", ProvinceName = "上海" });
lst.Add(new Models.Province { ProvinceID = 3, ProvinceNo = "120000", ProvinceName = "深圳" });
ViewBag.Category = new SelectList(lst, "ProvinceNo", "ProvinceName", "110000");
return View();
} }
}

  2、自定义HTML辅助方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; using System.Web.Routing;
using System.Web.Mvc; namespace MvcTest.html
{
public static class HtmlExtensions
{
public static MvcHtmlString Img(this HtmlHelper htmlHelper, string src)
{
return Img(htmlHelper, String.Empty, src, String.Empty, null);
}
public static MvcHtmlString Img(this HtmlHelper htmlHelper, string id, string src)
{
return Img(htmlHelper, id, src, String.Empty, null);
}
public static MvcHtmlString Img(this HtmlHelper htmlHelper, string id, string src, string alt, object htmlAttributes)
{
TagBuilder builder = new TagBuilder("img");
builder.GenerateId(id);
builder.MergeAttribute("src", src);
builder.MergeAttribute("alt", alt);
builder.MergeAttributes(new RouteValueDictionary(htmlAttributes)); return MvcHtmlString.Create(builder.ToString(TagRenderMode.SelfClosing));
}
}
}
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using MvcTest.html
@Html.Img("", Url.Content("~/Content/logo.png"))
@Html.Img("imgLogo", Url.Content("~/Content/logo.png"), "Logo", new { border = "1px solid #666666", @class = "c01" })

  生成的HTML代码:

<img alt="" src="/Content/logo.png" />
<img alt="Logo" border="1px solid #666666" class="c01" id="imgLogo" src="/Content/logo.png" />

asp.net mvc htmlHelper的更多相关文章

  1. ASP.NET MVC HtmlHelper用法集锦

    ASP.NET MVC HtmlHelper用法集锦 在写一个编辑数据的页面时,我们通常会写如下代码 1:<inputtype="text"value='<%=View ...

  2. 扩展ASP.NET MVC HtmlHelper类

    在这篇帖子中我会使用一个示例演示扩展ASP.NET MVC HtmlHelper类,让它们可以在你的MVC视图中工作.这个示例中我会提供一个简单的方案生成Html表格. HtmlHelper类 Htm ...

  3. ASP .NET MVC HtmlHelper扩展——简化“列表控件”的绑定

    在众多表单元素中,有一类<select>元素用于绑定一组预定义列表.传统的ASP.NET Web Form中,它对应着一组重要的控件类型,即ListControl,我们经常用到DropDo ...

  4. ASP.NET MVC HtmlHelper 类的扩展方法

    再ASP.NET MVC编程中用到了R语法,在View页面编辑HTML标签的时候,ASP.NET MVC 为我们准备好了可以辅助我们写这些标签的办法,它们就是HtmlHelper.微软官方地址是:ht ...

  5. [转]ASP.NET MVC HtmlHelper扩展之Calendar日期时间选择

    本文转自:http://blog.bossma.cn/asp_net_mvc/asp-net-mvc-htmlhelper-calendar-datetime-select/ 这里我们扩展HtmlHe ...

  6. C# ASP.NET MVC HtmlHelper用法大全

    UrlHrlper 下面的两个地址一样的功能 下边这个防止路由规则改变 比如UserInfo/Index改为UserInfo-Index,使用下面的不受影响 另一种形式的超链接: <%: Htm ...

  7. asp.net mvc Htmlhelper简单扩展

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  8. ASP.NET MVC HtmlHelper之Html.ActionLink

    前言 ActionLink用于生成超链接,方法用于指向Controller的Action. 扩展方法与参数说明 ActionLink扩展方法如下: public static MvcHtmlStrin ...

  9. ASP.NET MVC HtmlHelper用法大全

    HTML扩展类的所有方法都有2个参数: 以textbox为例子public static string TextBox( this HtmlHelper htmlHelper, string name ...

随机推荐

  1. Django URLconf

    Django提供了干净优雅的 URL 方案,URL配置文件是一个标准的 python 文件,支持动态配置.它的本质就是URL模式与调用的视图函数之间的映射表,最简单的配置文件如下: from djan ...

  2. jQuery.lazyload使用及源码分析

    前言: 貌似以前自己也写过图片懒加载插件,但是新公司使用的是jQuery.lazyload插件,为了更好的运用,自己还是把源码看了遍,分别记录了如何使用, 插件原理,各个配置属性的完整解释,demo实 ...

  3. Nginx 502 bad gateway问题的解决方法

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止,一般来说Nginx 502 Bad G ...

  4. Hadoop 之面试题

    颜色区别: 蓝色:hive,橙色:Hbase.黑色hadoop 请简述hadoop怎样实现二级排序. 你认为用Java,Streaming,pipe 方式开发map/reduce,各有哪些优缺点: 6 ...

  5. 【C语言入门教程】4.9 指向指针的指针

    指针变量可以指向另一个指针变量,这种操作并不是将一个指针变量所指向的内存地址传递给另一个指针变量,而是定义一种指向指针类型的指针变量,可将其称为双重指针.双重指针的定义形式为: 数据类型 **变量名: ...

  6. 如何设计PHP业务模块(函数/方法)返回结果的结构?

    如题:如何设计业务模块返回结果的结构? 一个业务函数/方法执行后,对外输出数据的结构通常有以下几种: 1.返回数字,如 成功时返回 0,失败时返回 -1,有的还会用一个全局变量输出错误信息: < ...

  7. linux 中断理解

    1.进程.线程只针对的是应用层,而内核调用.驱动没有这种概念,调用的都是内核调用里相同的函数或变量,所以应用层多个应用操作同个硬件时,特别是要加互斥操作,8250通过cs针脚决定发送数据给哪个串口 2 ...

  8. 深入理解Java虚拟机之读书笔记四 性能监控与故障处理工具

    JDK的bin目录下存在很多有效的命令行工具,它们就是jdk\lib\toos.jar类库的封装. 一.jps:虚拟机进程状况工具,查询出LVMID. 二.jstat:虚拟机统计信息监视工具, 三.j ...

  9. UITabBarController的使用和坑

    本人apem 说到UITabBarController, 最首要的坑就是tabbar的图片不显示的问题 1. tabbar上的图片一定要2套以上, 例如一个uitabbaritem的image是 se ...

  10. leetcode 32. Longest Valid Parentheses

    Given a string containing just the characters '(' and ')', find the length of the longest valid (wel ...