2011-06-18 48 views
1

我已經創建了一個HtmlHelper擴展方法,它返回一個編碼的字符串,我試過返回IHtmlStringMvcHtmlString,但不能得到字符串未編碼/未轉義?是否可以從MVC 3 Razor HtmlHelper返回未編碼/未轉義/原始字符串?

我想減少代碼,所以我不需要Html.Raw()在這個特定的實例。

UPDATE

這是一個有趣的一個。我是Razor的新手,所以添加了我想要的基類WebViewPage,這顯然沒有工作,然後在HtmlHelperExtension類中創建Method。

在視圖中,我有@MyMethod()這是工作和呈現未編碼的HTML。

我只注意到我已經看到了Darin季米特洛夫回答後中省略了「Html.」位,所以添加了Html.並移除了WebViewPage類,修復現有的HtmlHelper我有方法。

回答

8

IHtmlString應該做的工作:

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

,並在您的Razor視圖:

@Html.Foo() 

會產生生成的HTML:

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

這是未編碼。

+0

謝謝,我確實嘗試過,但你的回答幫我找到了一些東西,請看看我更新的問題。 –

+0

@Mark Redman,好,那麼,我的答案可以接受,還是還有其他問題? –

+0

是的,接受,只是想知道在我「關閉」之前是否有人有任何評論... –

相關問題