mvc html帮助器详解,ASP.NET MVC - HTML 帮助器

HTML 帮助器用于修改 HTML 输出。

HTML 帮助器

通过 MVC,HTML 帮助器类似于传统的 ASP.NET Web Form 控件。

类似 ASP.NET 中的 web form 控件,HTML 帮助器用于修改 HTML。但是 HTML 帮助器更轻。与 web form 控件不同,HTML 帮助器没有事件模型和 view state。

在大多数情况下,HTML 帮助器仅仅是返回字符串的方法。

通过 MVC,您能够创建自己的帮助器,或者使用内建的 HTML 帮助器。

以下为@Html 控件的一些用法:

1、创建表单:@Html.BeginForm(actionName , controllerName , FormMethod , htmlAttribute,new {html属性名字="值",@class=""})

actionName 和 controllerName这两个参数表示表单要提交到哪个controllerName下的哪个Action方法中

FormMethod此参数是一个枚举 表示表单提交方式  GET or POST

htmlAttribute表示form元素的Html属性 是一个object对象 使用new {html属性名字="值"} class也是html属性 但同时它是C#关键字 只能这样指定:new {@class="formstyle"}

new {html属性名字="值"} class也是html属性 但同时它是C#关键字 只能这样指定:new {@class="formstyle"}

new {}是一个对象,对象中指定html属性

@Html.EndForm() --> 表达结束

举个栗子:上传文件的表达

@using (Html.BeginForm("PostFile", "Service", FormMethod.Post, new { enctype = "multipart/form-data"}))

{

}

2、创建表单中的元素:

单选按钮:

@Html.RadioButton(name,value,Ischecked,htmlAttribute)

name单选按钮的name

value单选按钮的值

Ischecked是否是选中状态 (true |  false)

@Html.RadioButton("radiobtn","man",true,new{@class="radioStyle"})男

@Html.RadioButton("radiobtn","women",false,new{@class="radioStyle"})女

@Html.RadioButtonFor(expression,value,htmlAttribute)

同样是创建单选按钮的方法 但+For后缀的方法可以使用强类型作为参数expression的参数 推导出类型的属性 它可以将类型的属性名字作为表单元素的name的值

expression类型为System.Linq.Express.Expression.>的表达式  如

@Html.RadioButtonFor(n=>n.sex,"男",new{@class="radioStyle",@checked="checked"})

@Html.RadioButtonFor(n=>n.sex,"女",new{@class="radioStyle"})

复选框:@Html.CheckBox() 和@Html.CheckBoxFor()  此方法从未使用过,因为不好在服务端获取值,建议直接用html标签:

.net

C#

C++

下拉框:@Html.DropDownList(name , selectList , defaultSelected,htmlAttribute)

name下拉选项的name

selectList一个IEnumerable集合 集合中的每个选项是SelectListItem类型的 我们可以在Action中创建实现了IEnumerable接口的集合 然后将集合作为此方法的第二个参数 如

@Html.DropDownList("state", new List()

{new SelectListItem(){ Text="认证成功",Value="1"},new SelectListItem(){ Text="待认证",Value="2"},new SelectListItem(){ Text="未认证",Value="0"},new SelectListItem(){ Text="认证失败",Value="3"}

},"状态")

也可以来自服务端:

@Html.DropDownList("state", ViewData["State"], "状态")

服务端代码:

ViewData["State"] = new List()

{new SelectListItem(){ Text="认证",Value="1"},new SelectListItem(){Text="未认证",Value="0"}

};

defaultSelected 一个文本 表示默认选择的项 可选参数如:

@Html.DropDownList("state", ViewData["State"], "状态","未认证",new {@class="style"})

@Html.DropDownListFor(expression,selectList,htmlAttribute)

同样是创建下拉选项的方法 但+For后缀的方法可以使用强类型作为参数expression的参数 推导出类型的属性 它可以将类型的属性名字作为下拉选项元素的name的值

expression类型为System.Linq.Express.Expression.>的表达式

selectList类型为SelectLlist的对象

@Html.DropDownListFor(model => model.Address, ViewData["area"] as List, "-请选择-",new{@class="selectStyle"})

3、@Html.Raw()方法

@Html.Raw() 方法输出带有html标签的字符串,如:

@Html.Raw("

输出字符串
")

结果:输出字符串

4、创建超链接 @Html.ActionLink(linkText , actionName , controlName , routeValues , htmlAttribut)

//var url = "Url.Action("SearchResult")" + "?name=" + keyword;

linkText超链接文本

actionName提交到哪个Action处理

controlName提交到哪个控制器 可选 默认就是当前视图所属的Action所在的控制器

routeValues object对象 设置超链接查询字符 跟设置html属性是一样的 如new {id=1,name="sam"}

@Html.ActionLink("详细","Detail",new { id=1,name="sam"})

生成对应的超链接为:详细

5、动态加载分布视图 @Html.Partial(partialName,viewData["model"])

partialName参数为分布视图名称

viewData一个ViewDataDictionary类型的强类型对象

@Html.Partial("_partial", Model)

Model为服务器传输的强类型对象

@Html.RenderPartial()

与Partial方法有类似的行为 区别在于Partial是将分布视图作为字符串加入主视图 而RenderPartial则是将分布式图写入响应输出流 在性能上RenderPartial要优于前者 但以往内此方法不返回值 所以必须使用中括号括起来

@{Html.RenderPartial("TestPartial");}

@{Html.RenderPartial("TestPartial", new Course.Models.Employee{ ID=1, Name="sam"}, new ViewDataDictionary { {"music1","Free Jazz"},{"music2","BossaNova"}});}

@Html.Action(actionName,controllerName,routeValues,new {id=xx,code=xxx})

调用一个子操作(Action) 并以Html形式返回结果

actionName  Action的名称

controllerName控制器的名称

routeValues 路由参数 格式:new {id=xx,code=xxx}

此方法与Partial类似 区别在于 Partial方法不经过Action处理 它直接加载一个分部视图页面 而Action方法会先经过Action处理再加载分布视图 其用法如下

//加载左部分菜单栏,只需要插入代码

@Html.Action("LeftMenu", "Menu")

6、@Html.HiddenFor()、@Html.PassWord()、@Html.TextBox()

这些辅助控件也非常好用:@Html.HiddenFor(model => model.Logo, new { id = "imgurl" }) 等...

7、 @Html.ValidationSummary(true, "", new { @class = "text-danger" })

ValidationSummary 控件用于在网页、消息框或在这两者中内联显示所有验证错误的摘要。

在该控件中显示的错误消息是由每个验证控件的 ErrorMessage 属性规定的。如果未设置验证控件的 ErrorMessage 属性,就不会为那个验证控件显示错误消息。

属性

主要用于验证表单中的必填内容  具体用法请参考:http://www.w3school.com.cn/aspnet/aspnet_refvalidationcontrols.asp

总结:在实际项目中并非所有的标签都要用@Html 控件 选取重要的方便的标签以达到开发需要,我们最终的目的还是实现项目功能!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值