代码之家  ›  专栏  ›  技术社区  ›  frosty

使用html.actionlink,但不使用html编码

  •  0
  • frosty  · 技术社区  · 15 年前

    我希望返回以下输出

    <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编码?

    3 回复  |  直到 10 年前
        1
  •  3
  •   bodee    15 年前

    您可以为此创建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) %>
    
        2
  •  6
  •   D'Arcy Rittich    15 年前

    我觉得你最好用 Url.Action 这里,例如:

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

    如果您正在构建一个mvchtmlstring并希望包含一个助手样式的绝对路径,那么可以使用

    VirtualPathUtility.ToAbsolute("~/")
    

    然后在mvchtmlstring构造中将链接文本、控制器和具有特殊HTML/Entities的操作附加为字符串文本。

    推荐文章