在MVC中,ActionLink能够很好的解决在调整URL各个部分顺序的时候带来的链接地址出现的错误的问题。然而,在一些链接中,我们希望我们的标签a中能够包含更多内容,而不仅仅是纯文本。比如:图片,<span>等。
这个应该如何实现呢?
这个问题,你可能首先想到的是在linkText参数中带入HTML标签,不过很遗憾,这个和ASP.NET Web Form的还有点不一样,你带入的HTML标签将会被HtmlEncode掉。
在当下我使用的情况来看,用Html.ActionLink是没有办法处理。如果要实现这个问题,我们就不能直接使用ActinoLink了,而应该使用Url.Action这个方法。具体的实现方法如下:
<a href="@Url.Action("Action", new {controller="ControllerName"})">
这里放HTML代码
</a>
这样,你就可以很自由的处理链接块内的内容了,而且可操作的空间非常大,也非常灵活,更可喜的是,这个方法同样可以适应URL的参数位置调整的问题。