asp.ner mvc3表单和HTML辅助方法(二)
2013-07-27 17:24
435 查看
上一讲我们说到用form标签访问mvc控制器以及如何正确显示视图结果,今天给大家介绍下mvc中的HTML辅助方法,以及如何用辅助方法来重写上次的form
上一讲中的form表单
既然我们使用了mvc我们就应该尽量使用他的特性用Html辅助方法代劳上面这个form表单
BeginForm辅助方法询问路由引擎如何找到HomeController控制器的Search操作(也就是方法)在后台它使用RouteTable中Routes属性上名为GetVirtualPath的方法.
HTML辅助方法
HTML辅助方法是可以通过视图的HTML属性调用的方法.
Textarea 辅助方法中第二个参数是要渲染的值.上面的例子是向它的值中嵌入一些Html标记,但TextArea辅助方法将产生下面的标记:
输出值是经过HTML编码的.
在保护代码的同时,辅助方法也给出了所需程度的控制.BeginForm辅助方法的另外一个重载版本
在上面这段代码中,向BeginForm方法的htmlAttributes参数传递了一个匿名类型的对象.基本上所有的asp.net mvc 框架中的每一个HTML辅助方法在它的某个重载版本中都包含一个htmlAttributes参数.也有时可以再不同的重载版本中发现htmlAttributes参数类型是IDictionary<string,object>.就是(名/值)
上面代码会产生这样的html结果
可以看到已经使用了 htmlAttributes 参数设置了 target="_blank" .在这里还要特别注意下设置class
的时候,因为class是C#语言中的保留关键字,不能用作属性标识符,所以得这样
在class前面加一个@符号即可,还有一个问题是在设置属性时带有连字符的名称(data-value),带有连字符的C#属性名是无效的,但所有的HTML辅助方法在渲染HTML时会将属性名中的下划线转换为连字符.
将会生成如下HTML代码
今天就到这里,谢谢大家
上一讲中的form表单
<form action="control/action" method="get"> <input name="q" type="text"> <input type="submit" value="Search"> </form>
既然我们使用了mvc我们就应该尽量使用他的特性用Html辅助方法代劳上面这个form表单
@using (Html.BeginForm("Search", "Home", FormMethod.Get)) { <input type="text" name="q" /> <input type="submit" value="Search" /> }
BeginForm辅助方法询问路由引擎如何找到HomeController控制器的Search操作(也就是方法)在后台它使用RouteTable中Routes属性上名为GetVirtualPath的方法.
HTML辅助方法
HTML辅助方法是可以通过视图的HTML属性调用的方法.
@Html.TextArea("text","hello <br /> world");
Textarea 辅助方法中第二个参数是要渲染的值.上面的例子是向它的值中嵌入一些Html标记,但TextArea辅助方法将产生下面的标记:
<textarea cols="20" id="text" name="text" rows="2"> hello <br / > world </textarea>
输出值是经过HTML编码的.
在保护代码的同时,辅助方法也给出了所需程度的控制.BeginForm辅助方法的另外一个重载版本
@using (Html.BeginForm("Search", "Home", FormMethod.Get, new { target = "_blank"} )) { <input type="text" name="q" /> <input type="submit" value="Search" /> }
在上面这段代码中,向BeginForm方法的htmlAttributes参数传递了一个匿名类型的对象.基本上所有的asp.net mvc 框架中的每一个HTML辅助方法在它的某个重载版本中都包含一个htmlAttributes参数.也有时可以再不同的重载版本中发现htmlAttributes参数类型是IDictionary<string,object>.就是(名/值)
上面代码会产生这样的html结果
<form action="/Home/Search" method="get" target="_blank">
可以看到已经使用了 htmlAttributes 参数设置了 target="_blank" .在这里还要特别注意下设置class
的时候,因为class是C#语言中的保留关键字,不能用作属性标识符,所以得这样
@using (Html.BeginForm("Search", "Home", FormMethod.Get, new { target = "_blank" , @class="editForm"} )) { <input type="text" name="q" /> <input type="submit" value="Search" /> }
在class前面加一个@符号即可,还有一个问题是在设置属性时带有连字符的名称(data-value),带有连字符的C#属性名是无效的,但所有的HTML辅助方法在渲染HTML时会将属性名中的下划线转换为连字符.
@using (Html.BeginForm("Search", "Home", FormMethod.Get, new { target = "_blank" , @class="editForm", data_validatable="true"} )) { <input type="text" name="q" /> <input type="submit" value="Search" /> }
将会生成如下HTML代码
<form action="/Home/Search" class="editForm" data-validatatable="true" method="get" target="_blank">
今天就到这里,谢谢大家
相关文章推荐
- ASP.NET MVC3学习心得-----表单和HTML辅助方法
- MVC_表单和HTML辅助方法
- ASP.NET MVC3学习心得-----表单和HTML辅助方法
- 第5章 表单和HTML辅助方法(HtmlHelper、辅助方法的使用、HTML辅助方法的工作原理、强类型辅助方法)
- Html辅助方法 之 Form表单标签
- Html辅助方法 之 Form表单标签
- MVC:表单和HTML辅助方法
- ASP.NET MVC3学习心得-----表单和HTML辅助方法
- Html辅助方法 之 Form表单标签
- 浅谈表单和HTML辅助方法
- 《ASP.NET MVC高级编程(4版)》读书笔记(5)表单和HTML辅助方法
- Html辅助方法 之 Form表单标签
- 【ASP.NET MVC系列】浅谈表单和HTML辅助方法
- 表单和 HTML 辅助方法– ASP.NET MVC 4 系列
- ASP.NET MVC5 学习系列之表单和HTML辅助方法
- Html辅助方法 之 Form表单标签
- ASP.NET MVC3学习心得-----表单和HTML辅助方法
- ASP.NET MVC5 高级编程 第5章 表单和HTML辅助方法
- MVC使用jQuery从视图向控制器传递Model,数据验证,MVC HTML辅助方法小结
- [HTML] 关于DIV被Flash或表单遮盖的解决方法