在View中我们经常使用的就是HtmlHelper;
到底HtmlHelper给我们带来什么了呢?说白了它就是帮我们生成Html代码而已,没啥特别的,呵呵。
今天简单说一下常用的东西:
1、<%= Html.Encode(ViewData["Message"]) %>
Html.Encode:编码显示的内容:当你需要在页面显示一段包含html代码时,则需要用它来编码,否则就会当作普通的Html来显示给你
如:<%=Html.Encode("<a href='#'>Test</a>")%>此时页面就会原样的输出内容,如果不用Html.Encode的话则浏览器当作一个超链接返回给你
2、<%=Html.ActionLink("关于","About") %>
实际页面生成a标签;参数About是action名称(我注:Action返回的是ActionResult,就是View页面,但是这里的Controller是默认的HomeController吗?如果不是的话,该怎么表示另外一个Controller?)
3、<%Html.BeginForm(); %>
实际页面生成 <form >;表单的开始
Html.BeginForm(string actionName,string controllerName);指定action的名称和哪个控制器,页面生成内容<form action="XX/XX" method="post"> (我注:不知道这里的method是怎么选择的?)
4、<%Html.EndForm() ;%>(我注:这里介绍的标签比较粗略,大家还是自己找更详细的资料查看)
与上面开始表单标签对应的结束标签</form>
5、<%=Html.Hidden("name") %>
页面生成 hidden 标签
6、<%=Html.TextBox("name") %>
页面生成 <input type="text" name="name" /> 标签
7、<%=Html.DropDownList("name") %>
页面生成下拉框select
还有其他的标签生成Html.ListBox/Html.CheckBox 等,这些内容最后实际就是通过HtmlHelper类给我们生成标准的html代码而已,我们完全可以手工写这些html标签,而不用htmlhelper,只不过它给我们封装好了,用起来也比较方便。
(我注:C#语言从3.0开始增加了一个很特别的功能:扩展方法。简单的扩展方法的学习,可以参照我转载的另一篇博文:http://blog.youkuaiyun.com/Csdbfans/archive/2010/09/22/5900464.aspx)
下面我们简单扩展一下HtmlHelper,让它实现我们自己的方法来实现生成html代码:
1、新建一个静态类以及在静态类中新建一个静态方法
{
public static string MyLable( this HtmlHelper htmlHelper, string target, string text)
{
return string .Format( " <label for='{0}'>{1}</lable> " ,target,text);
}
}
其他不用多解释,只是说下MyLable的第一个参数this HtmlHelper htmlHelper : 这种写法是3.0以后的扩展方法,本方法就是对 HtmlHelper的扩展参数string target,string text 2个参数;
定义完了就好啦,我们直接在页面使用就好了,这里要注意的一点就是需要在页面引入我们的命名空间
在页面的顶部加上 <%@ Import Namespace="MvcApplication1" %>
MyLable 使用方法:
<%=Html.MyLable("ta","test")%>
这里讲的比较简单,实现起来也很简单啦,大家有兴趣可以找些其他资料来看看会有不少收获。
转自:http://www.cnblogs.com/bboy/archive/2010/01/16/1649712.html