mvc中的html属性,ASP.NET MVC中HtmlHelper控件7个大类中各个控件使用详解

HtmlHelper类在命令System.Web.Mvc.Html之中,主要由7个静态类组成,它们分别是FormExtensions类,InputExtensions类,LinkExtensions类,SelectExtensions类,TextExtensions类,ValidationExtensions类,RenderPartialExtensions类。

为了方便开发者使用HtmlHelper控件,在视图ViewPage类中设置了一个属性Html它就是HtmlHelper类型。

一.FormExtensions类

定义了3中类型的扩展方法BeginForm,BeginRouteForm,EndForm。

(1) BeginForm (实现表单定义的开始部分)

重载方法有13个:

BeginForm();

BeginForm(Object routeValues);

BeginForm(RouteValueDictionary routeValues);

BeginForm(string actionName,string controllerName);

BeginForm(string actionName,string controllerName,object routeValues);

BeginForm(string actionName,string controllerName,RouteValueDictionary routeValues);

BeginForm(string actionName,string controllerName,FormMethod method);

BeginForm(string actionName,string controllerName,object routeValues,FormMethod method);

BeginForm(string actionName,string controllerName,RouteValueDictionary routeVaues,FormMethod method);

BeginForm(string actionName,string controllerName,FormMethod method,object htmlAttributes);

BeginForm(string actionName,string controllerName,FormMethod method,IDictionary htmlAttributes);

BeginForm(string actionName,string controllerName,object routeValues,FormMethod method,object htmlAttributes);

BeginForm(string actionName,string controllerName,RouteValueDictionary routeValues,FormMethod method,IDictionary htmlAttributes);

对于第二个重载方法可以设置如下:

Html.BeginForm(new{action="action",controller="actroller",id="2"});

在上述代码中,设置了路由值的一个实例化对象,输出的HTML语句是:

对于最后一个第十三个方法的最后一个参数是实例化对象设置相关属性的值例如class,width等。

(2)BeginRouteForm (主要实现表单定义的开始部分,以路由的方法设置action的值)

有12个重载方法:

BeginRouteForm(object routeValues);

BeginRouteForm(RouteValueDictionary routeValues);

BeginRouteForm(string routeName);

BeginRouteForm(string routeName,object routeValues);

BeginRouteForm(string routeName,RouteValueDictionary routeValues);

BeginRouteForm(string routeName,FormMethod method);

BeginRouteForm(string routeName,object routeValues,FormMethod method);

……

对于第一个重载方法:

Html.BeginRouteForm(new {action="action"});

Home是页面所在的目录

BeginForm与BeginRouteForm的区别就在于第一个的action是action第二个的action是Home/action

(3)EndForm(实现表单的定义的结束部分)

Html.EndForm();

相当于

二.InputExtensions类有5种类型的扩展方法,可在视图中设置checkBox,hidden,password,radioButton,textBox控件。

(1)CheckBox 实现复选框控件有6个重载方法

CheckBox(string name);

CheckBox(string name,bool isChecked);

CheckBox(string name,bool isChecked,object htmlAttributes);

CheckBox(string name,object htmlAttributes);

CheckBox(string name,Idictionary htmlAttributes);

CheckBox(string name,bool isChecked,Idictionary htmlAttributes);

设置复选框的实现代码:

设置字体:

黑体

斜体

运行上述代码,上述复选框的设置代码对应的HTML语句:

在后台检索checkBox

public ActionResult CheckBox (FormCollection formCollection)

{

bool MyCheckBox1=formCollection[0].Contains("true");//检索第一个复选框是否被选中

bool MyCheckBox2=formCollection["MyCheckBox2"].Contains("true");//检索名字是MyCheckBox2的复选框是否倍选中

ViewData["CheckBox1"]=MyCheckBox1;

ViewData["CheckBox2"]=MyCheckBox2;

return View();

}

(2)Hidden 表单中的隐藏数值,有4个重载方法。

Hidden(string name);

Hidden(string name,object value);

Hidden(string name,object value,object htmlAttributes);

Hidden(string name,object value,Idictionary htmlAttributes);

eg:

Html.Hidden("testName");

对应输出的Html语句如下:

(3)Password 主要是输入密码的文本框,有4个重载方法。

Hidden(string name);

Password (string name,object value);

Password (string name,object value,object htmlAttributes);

Password (string name,object value,Idictionary htmlAttributes);

eg:

Html.Password ("MyPwd");

对应输出的Html语句如下:

--------------------------------------------------------------------------------------------

HTML扩展类的所有方法都有2个参数:

以textbox为例子

public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, IDictionary htmlAttributes )

public static string TextBox( this HtmlHelper htmlHelper, string name, Object value, Object htmlAttributes )

这2个参数代表这个html标签的属性集合。使用方法如下。

1.ActionLink

带有QueryString的写法

有其它Html属性的写法

QueryString与Html属性同时存在

生成结果为:

这是一个连接

带有QueryString的写法

这是一个连接

这是一个连接

有其它Html属性的写法

这是一个连接

这是一个连接

QueryString与Html属性同时存在

这是一个连接

这是一个连接

2.RouteLink

跟ActionLink在功能上一样。

带QueryString

生成结果:

关于

关于

关于

3.Form 2种方法

生成结果:

4.TextBox

a.CategoryName, new { @style = "width:300px;" })%>

生成结果:

5.TextArea

a.CategoryName, 3, 3, null)%>

生成结果:

Beverages

Beverages

6.CheckBox

a.IsVaild, new { @class = "checkBox" })%>

生成结果:

7.ListBox

a.CategoryName, (SelectList)ViewData["Categories"])%>

生成结果:

Beverages

Condiments

Confections

Dairy Products

Grains/Cereals

Meat/Poultry

Produce

Seafood

Beverages

Condiments

Confections

Dairy Products

Grains/Cereals

Meat/Poultry

Produce

Seafood

8.DropDownList

a.CategoryName, (SelectList)ViewData["Categories"], "--Select One--", new { @class = "dropdownlist" })%>

生成结果:

--Select One--

Beverages

Condiments

Confections

Dairy Products

Grains/Cereals

Meat/Poultry

Produce

Seafood

--Select One--

Beverages

Condiments

Confections

Dairy Products

Grains/Cereals

Meat/Poultry

Produce

Seafood

9.Partial 视图模板

webform里叫自定义控件。功能都是为了复用。但使用上自定义控件真的很难用好。

看清楚了没有等号的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值