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

Mar*_*man 1 razor asp.net-mvc-3

我已经创建了一个HtmlHelper返回编码的字符串扩展方法,我曾尝试回国IHtmlString,并MvcHtmlString却又无法得到的字符串未编码/转义?

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

UPDATE

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

在我看到的@MyMethod()工作和渲染未编码的HTML 的视图中.

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

Dar*_*rov 8

IHtmlString应该做的工作:

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

并在你的剃刀视图中:

@Html.Foo()
Run Code Online (Sandbox Code Playgroud)

会在生成的html中产生:

<a href="http://www.google.com">Google</a>
Run Code Online (Sandbox Code Playgroud)

这是未编码的.