ASP.NET MVC - 带有HtmlString的Ajax.ActionLink

时间:2012-02-08 14:06:24

标签: asp.net-mvc-3

是否可以使用带有HtmlString的Ajax.ActionLink方法作为链接文本而不是字符串?

原因是我想做这样的事情:

@Ajax.ActionLink("<span style='highlight'>Hello</span> World", ...)

如果我现在尝试这个,它会在我的页面上返回跨度等。所以我需要将其作为HtmlString

返回

编辑:

刚试过:

        public static MvcHtmlString ActionLink(
        this AjaxHelper ajaxHelper,
        IHtmlString linkText,
        string actionName,
        Object routeValues,
        AjaxOptions ajaxOptions
    )
    {
        return ActionLink(ajaxHelper, linkText, actionName, routeValues, ajaxOptions);
    }

我有一个堆栈溢出异常?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

不,我不相信。 ASP.NET MVC将HTML编码文本,使其显示为这样。您需要使用的是AjaxExtensions.ActionLink()方法的重载。像这样的东西会起作用:

AjaxExtenions.ActionLink()

方法参数列表:

public static MvcHtmlString ActionLink(
    this AjaxHelper ajaxHelper,
    string linkText,
    string actionName,
    Object routeValues,
    AjaxOptions ajaxOptions,
    Object htmlAttributes
)

注意如何有Object表单HTML属性。 但是,这只是该锚元素的HTML属性。如果您真的设置使用<span />元素,那么您最好的选择就是为此编写自定义HtmlHelper

实施例

@Ajax.ActionLink(
    "This is your link text",
    "SomeActionName",
    null, // or you could pass route values if you like
    new AjaxOptions() { }, // whatever Ajax options you want
    null); // not passing any html attributers