请注明转载地址:http://www.cnblogs.com/arhat

今天老魏是在十分郁闷,我的一个U盘丢了,心疼里面的资料啊,全部是老魏辛辛苦苦积攒的Linux资料,太心疼,到现在心情还不是很爽。没办法,丢了也就丢了。希望老魏能够从服务器中找到这些备份的资料吧。

那么开始今天的章节,由于前两天比较忙,老魏更新的慢了,以后慢慢不上来吧!今天我们要说的是ASP.NET MVC 中的HTML辅助方法。HTML辅助方法能够帮助我们能够快速生成视图代码,通过HTML辅助方法可以向像编写C#一样编写HTML文件。

这些辅助方法都位于System.Web.Mvc.Html这个命名空间,大家可以从这个命名空间中查看这些方法。当了,由于这些辅助方法只是用来生成html内容的,所以老魏这里呢就不再详细的介绍,根据下面我举的例子,大家可以依葫芦画瓢看着帮助文档来学习。

而HTML辅助方法是HTMLHelper类的扩展方法,所以本章我们主要来看看这些辅助方法是如何帮助我们快速的开发视图文件。

一、超链接
HTMLHelper的扩展方法提供以下的扩展方法可以生成超链接。

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName);        

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues);        

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, RouteValueDictionary routeValues);        

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName);        

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues, object htmlAttributes);

这么多重载方法我们并不需要全部的记住,而是在适当的时候使用适当的方法。我们来学习一下常用的方法。

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName);

这个方法是用来跳转到对应的action。

@Html.ActionLink("这是超连接", "Index");
<a href="/">这是超连接</a>

但是需要注意的是的,actionName只能是视图所在的控制下的Action方法。

public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, object routeValues);

这个方法生成的超连接可以传递一下参数。

@Html.ActionLink("这是超连接", "Index", new { id=1,name="department"});
<a href="/Home/Index/1?name=department">这是超连接</a>
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName);

这个方法生成的连接可以跨controller

@Html.ActionLink("这是超连接", "Test","About");
<a href="/About/Test">这是超连接</a>;
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName,object routeValues, object htmlAttributes);
@Html.ActionLink("这是超连接", "Test", "About", new { name="apple"},null);
<a href="/About/Test?name=apple">这是超连接</a>;

我们可以通过最后一个参数来给html元素添加属性。

@Html.ActionLink("这是超连接", "Test", "About", new { name = "apple" }, new { style="text-decoration:none"});
<a href="/About/Test?name=apple" style="text-decoration:none">这是超连接</a>;

这里需要注意的地方是如果要给超链接添加一个class的css属性,那么必须在前面加上@符号,因为class是C#的关键字。

@Html.ActionLink("这是超连接", "Test", "About", new { name = "apple" }, new { style="text-decoration:none",@class="a"});
<a class=”a” href="/About/Test?name=apple" style="text-decoration:none">这是超连接</a>;

表单
当然除了超链接,HTML辅助方法也提供了对表单的支持。如果我们使用辅助方法来生成表单可以通过两种方法,只是风格不同。

通过Html.BeginForm()方法来声明一个表单。又有BeginForm方法的重载比较多,这里就不一一列举了,我们来看一下常用的重载方法。大家可以从System.Web.Mvc.Html.FormExtensions中查看一下重载的方法。

@using (Html.BeginForm()) 

{ 

<p>

        账号:@Html.TextBox("username")

</p>

<p>

        密码:@Html.Password("pwd")

</p>

}
<form action="/" method="post">   

 <p>        账号:<input id="username" name="username" type="text" value="" />    </p>   

 <p>        密码:<input id="pwd" name="pwd" type="password" />    </p>

</form>

那么我们可以看到生成的表单中action的地址为”/”。所以我们可以通过其他的重载函数来生成表单。

@using (Html.BeginForm("Test","Home")) 

{ 

<p>

        账号:@Html.TextBox("username")

</p>

<p>

        密码:@Html.Password("pwd")

</p>

}
<form action="/Home/Test" method="post">   

 <p>        账号:<input id="username" name="username" type="text" value="" />    </p>    

<p>        密码:<input id="pwd" name="pwd" type="password" />    </p>

</form>

在上面的例子中,我们使用到了表单元素,那么这些表单元素大家可以从System.Web.Mvc.HtmlInputExtensions中查看,这里老魏就不再做介绍了(因为比较简单)。

一步步学习ASP.NET MVC3 (13)——HTML辅助方法的更多相关文章

  1. 一步步学习ASP.NET MVC3 章节总结

    请注明转载地址:http://www.cnblogs.com/arhat 对于<一步步学习ASP.NET MVC3>系列工15章,那么为了方便大家能够快速的预览,老魏在这里为这个系列提供一 ...

  2. 一步步学习ASP.NET MVC3 (1)——基础知识

    请注明转载地址:http://www.cnblogs.com/arhat 首先在这里我想声明一下,这个ASP.NET MVC3系列是我在授课过程中的一些经验,有什么不对的地方,请大家指出,我们共同的学 ...

  3. 一步步学习ASP.NET MVC3 (3)——Razor(1)

    请注明转载地址:http://www.cnblogs.com/arhat 首先这个<一步步学习ASP.NET MVC3>前段时间有些忙,没有顾得上写文章,昨天呢写了3个和ASP.NET的相 ...

  4. 一步步学习ASP.NET MVC3 (12)——FileResult

    请注明转载地址:http://www.cnblogs.com/arhat 忙了两天,本来老魏昨天就应该写出新的文章,但是由于昨天雨夹雪而且加上昨天晚上加了班,到家都没饭吃了,一看时间都9点了,什么饭店 ...

  5. 一步步学习ASP.NET MVC3 (2)——入门程序

    请注明转载地址:http://www.cnblogs.com/arhat 在上一节中,我们只是简单的介绍了什么是MVC及MVC的运行原理.而本节呢,主要来实现下一ASP.NET MVC3的开发流程,并 ...

  6. 一步步学习ASP.NET MVC3 (14)——Route路由

    请注明转载地址:http://www.cnblogs.com/arhat 由于今天是星期六,所以多写几篇,感觉前几天的忙碌没有及时发布文章,趁着周末老魏尽力的多写几篇文章.因为本系列基本上快结束了,所 ...

  7. 一步步学习ASP.NET MVC3 (5)——View从Action中获得数据

    请注明转载地址:http://www.cnblogs.com/arhat 在上一章中,我们把Razor的模板技术给大家介绍了一下,当然模板中还有其他的知识点,这个以后我们还会继续讲解.本章我们主要讨论 ...

  8. 一步步学习ASP.NET MVC3 (10)——@Ajax,JavaScriptResult(1)

    请注明转载地址:http://www.cnblogs.com/arhat 首先老魏先说一下抱歉,昨天由于在安装CentOS,Mono,Jexus配置Linux环境下的ASP.NET运行环境,花费了不少 ...

  9. 一步步学习ASP.NET MVC3 (11)——@Ajax,JavaScriptResult(2)

    请注明转载地址:http://www.cnblogs.com/arhat 今天在补一章吧,由于明天的事可能比较多,老魏可能顾不上了,所以今天就再加把劲在写一章吧.否则对不起大家了,大家看的比较快,可是 ...

随机推荐

  1. [COCOS2DX]官网helloworld在VS2012中的部署

    VS2012.JDK.Eclipse(和adt插件)之类的基本安装这里直接略过. 以下为对cocos2dx 3.5版本在VS2012中部署的摸索: 开源项目“愤怒的小鸟”原来设置: .;..\Clas ...

  2. qt-vs-addin-版本支持

    qt-vs-addin-1.2.0-opensource.exe         VS200X qt-vs-addin-1.2.1-opensource.exe         VS200X qt-v ...

  3. iOS的崩溃和编译错误

    1. Command /bin/sh failed with exit code 127 这是因为mogenerator找不到路径,stackoverflow给出的答案是: If /usr/local ...

  4. 关于Arrays类总结

    Arrays是java中的工具类,其中所有的方法都是static.类名就可以直接调用其中的方法. 本文部分引用自: http://www.importnew.com/8952.html Arrays. ...

  5. win7 X64可用的单文件IE6

    由于日常调试需要用到老版本的ie,没有办法!用ietest老师感觉不好使,动不动就死了.就找到了ie的单文件版,有博主 小明爱切糕制作,IE6.7.8单文件版本 http://www.cnblogs. ...

  6. PHP Fatal error: Cannot pass parameter 2 by reference

    PHP Fatal error:  Cannot pass parameter 2 by reference in 这个错误的意思是:不能按引用传递第2个参数 我的理解是: 方法的第2个参数 需要传递 ...

  7. scala学习笔记:理解类继承

    scala> import scala.reflect._ import scala.reflect._ scala> class Person(@BeanProperty var nam ...

  8. listview使用checkbox批量删除出现的问题

    1.选中前面的checkbox导致后的checkbox被选中 2.选中后下滑listview,再上滑时被选中的checkbox又变成未选中状态. 问题大都是因为对listview进行代码优化重用con ...

  9. Asp.net网页中禁止使用剪切、复制、粘贴的方法

    工欲善其事,必先利其器 在asp.net开发的网页中,有时候需要禁止用户粘贴复制密码,禁止用户copy文章直接粘贴到文本框中.采取的方法是直接在限制控件的地方写上禁止粘贴文本的代码.但是这样不是很方便 ...

  10. 九度OJ 1120 全排列 -- 实现C++STL中next_permutation()

    题目地址:http://ac.jobdu.com/problem.php?pid=1120 题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' ...