是否有可能从MVC 3 Razor HtmlHelper返回未编码/未转义/原始字符串?

时间:2011-06-18 15:10:38

标签: asp.net-mvc-3 razor

我创建了一个HtmlHelper扩展方法,它返回一个编码字符串,我尝试返回IHtmlStringMvcHtmlString但是无法获取字符串未编码/未转义?

我正在尝试减少代码,所以在这个特定的实例中我不需要Html.Raw()

更新

这是一个有趣的问题。我是Razor的新手,所以添加了我想要的WebViewPage基类的方法,这显然没有用,然后在HtmlHelperExtension类中创建了方法。

在视图中我有@MyMethod()正在工作并呈现未编码的html。

我只注意到在看到Darin Dimitrov的答案之后我已经忽略了“Html.”位,所以添加了Html.并从WebViewPage类中删除了该方法,这修复了我现有的HtmlHelper。

1 个答案:

答案 0 :(得分:8)

IHtmlString应该做的工作:

public static class HtmlExtensions
{
    public static IHtmlString Foo(this HtmlHelper html)
    {
        return MvcHtmlString.Create("<a href=\"http://www.google.com\">Google</a>");
    }
}

并在你的剃须刀视图中:

@Html.Foo()

会在生成的html中生成:

<a href="http://www.google.com">Google</a>

是未编码的。