2010-10-19 34 views
0

我希望返回下面的输出使用html.ActionLink而不是HTML编码

<a href="#"><img src="/images/icons/tick.png" alt="" />More info</a> 

,如果我做了以下的内容是HTML编码。

<%= Html.ActionLink("<img src='/images/icons/tick.png' />More info", "OrderRegion", "Campaign", new {id = Model.Campaign.Id}, null) %> 

如何禁用html编码?

+0

您的代码与您的输出不符。您的输出只使用'#'作为URL,而您的代码意味着您需要一个指向Action的URL。 – RedFilter 2010-10-19 15:13:34

回答

3

您可以创建一个的HtmlHelper这个

public static class HtmlHelpers 
{ 
    public static string MyActionLink(this HtmlHelper htmlHelper, string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes) 
    { 
     var tagActionLink = htmlHelper.ActionLink("[replace]", actionName, controllerName, routeValues, htmlAttributes).ToHtmlString(); 
     return tagActionLink.Replace("[replace]", linkText); 
    } 
} 

中的.aspx:

<%= Html.MyActionLink("<img src='/images/icons/tick.png' />More info", "OrderRegion", "Campaign", new {id = 15}, null) %> 
+0

你应该使用'TagBuilder'。 – SLaks 2011-02-09 00:44:37

+1

是否可以这样做,但使用Ajax.ActionLink? – CallumVass 2012-02-09 08:05:51

+0

如果您在HtmlHelper类中找到ActionLink方法时遇到问题,它是一种扩展方法,可以通过添加'using System.Web.Mvc.Html;'语句来找到。 – 2012-05-02 22:22:29

6

我认为你最好使用Url.Action这里,如:

<a href="<%= Url.Action("OrderRegion", "Campaign", new {id = Model.Campaign.Id}) %>"> 
    <img src="/images/icons/tick.png" alt="" />More info 
</a> 
0

如果您正在构建一个MvcHtmlString并希望包含一个辅助式绝对路径,您可以使用

VirtualPathUtility.ToAbsolute("~/") 

然后在MvcHtmlString构造中将链接文本,控制器和操作添加为花哨的HTML/entites作为字符串文字。

相关问题