2010-10-19 33 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作爲字符串文字。

相關問題