请注明转载地址: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. Spring(AbstractRoutingDataSource)实现动态数据源切换--转载

    原始出处:http://linhongyu.blog.51cto.com/6373370/1615895 一.前言 近期一项目A需实现数据同步到另一项目B数据库中,在不改变B项目的情况下,只好选择项目 ...

  2. Objective-C Runtime之着魔的UIAlertView

    前言: 上篇文章写的是Runtime的一个入门教程,刚哥问我那个Associated Objects加回调是啥时候用,那我就来告诉你啦!我们在使用UIAlertView的时候用的多. 传统的UIAle ...

  3. jemalloc源码结构分析(二):CPU字节对齐算法

    在调用arena_malloc_small过程中,要根据申请内存大小,进行对齐计算,然后分配一个整块儿.算法如下: 1)定义一个SIZE_CLASSES宏,它主要用于生成后面两个表,small_siz ...

  4. mysql:通用查询日志general_log

    1.通用查询日志:记录建立的客户端连接和执行的语句,通用查询日志默认情况下不是开启的,通用查询日志是以文本方式存放的 当需要采样分析的时候手工开启: SET Global general_log=1; ...

  5. [原]Unity3d中奇怪的编译错误

    整理项目,重新build时出现一些问题,这些代码在原项目中都是可以运行的. 错误信息如下: Assets/XXXXX.cs(79,35): error CS0103: The name `NNNNNN ...

  6. dedecms 知识点总结

    生成-更新主页html 将自定义字段在arclist调用:   内容模型管理==>频道模型管理==>增加新字段==>列表处理:  使字段可以在列表的底层模板中获得(自定义字段默认仅能 ...

  7. 永久设置 NLS_DATE_FORMAT 方法

    在客户端(如WEB服务器),设置环境变量即可,如: NLS_DATE_FORMAT YYYY-MM-DD HH24:MI:SS   在程序处执行会影响后续SQL性能 ALTER SESSION SET ...

  8. iOS项目里面如何清理缓存

    在正式讲解以前,请先看一下以下图片,在以下这款APP种设有清理缓存,开始我以为很复杂,在弄明白之后,其实就是几句代码就解决了.      在实际项目开发中,我们很多的文件都会缓存在沙盒里面,比如:照片 ...

  9. 关于Encoding.GetEncoding("utf-8")和Encoding.GetEncoding("GB2312")及Encoding.Default

    关于Encoding.GetEncoding("utf-8")和Encoding.GetEncoding("GB2312")及Encoding.Default ...

  10. JS学习之表格的排序

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...