首页 > 代码库 > asp.net MVC 回顾 Html.ActionLink

asp.net MVC 回顾 Html.ActionLink

在asp.net MVc中想生成一个超链接有很多种方式,通过直接输入<a>、Html.ActionLink、Html.RouteLink等等,今天我们要阐述的就是Html.ActionLink 知识点总结。

@Html.ActionLink有10个重载,

示例代码说明
@Html.ActionLink("LinkText","ActionName")

在生成的超链接中,LinkText指定的文本不可以为Null或空,否则程序会报错

@Html.ActionLink("博客园","Index"),生成一个指向首页的超链接

@Html.ActionLink("LinkText","ActionName","ControllerName")@Html.ActionLink("首页","Index","Home") <a href="http://www.mamicode.com/home/index">首页</a>
@Html.ActionLink("LinkText","ActionName","ControllerName","RoutValues","HtmlAttributes")

这种方式使用的比较多,因为可以定义ActionName和ControllerName,并且可以设置route和HtmlAttribute的值.

@Html.ActionLink("首页","Index","Home",new{id="11"},new{@class="btnLogin",data_val="guozhqi" id="btnLogin"})

<a href="http://www.mamicode.com/home/index/11" class="btnLogin" id="btnLogin" data-val="guozhiqi">首页</a>

注意:在htmlAttribute添加class的时候需要在class前面添加@

      在自定义属性中如果有- 减号的情况下,需要将减号修改成_ 下划线,在生成的html中辉自动更改为减号。

 

注意在选择合适的重载的时候,方法中的参数类型要注意,因为重载中有很多object类型 

 

问题:是否可以通过使用@Html.ActionLink()来生成一个无显示文字的超链接?答案是否定的,因为在Html.ActionLink中,显示文本时必须填写并且不允许为空的。可以采用<a href="http://www.mamicode.com/@Url.Action("Index","Home")" class="btnLogin"></a> 来间接地实现。

 

主要生成超链接,在通过代码生成超链接的时候需要判断显示文本是否为空。切记