天天看點

怎樣在Razor中使用HtmlHelper(MvcHtmlString)

 如果你以前編寫的HtmlHelper喜歡傳回string而非MvcHtmlString,那麼在使用Razor後要改改了。

假設原來有一個Helper調用:

<%= Html.ProgressBar(tree, progress) %>

而函數聲明是:

public static string ProgressBar(this HtmlHelper htmlHelper, SFCProgressTree progressTree, SFCProgress progress, bool show = false)

{

...

return ImgTag.ToString()

}

則在新的Razor中除了在調用處改為:

@Html.ProgressBar(tree, progress)

外,還需要調整

public static MvcHtmlString ProgressBar(this HtmlHelper htmlHelper, SFCProgressTree progressTree, SFCProgress progress, bool show = false)

return new MvcHtmlString(imgTag.ToString());

原因是Razor中将所有輸出的string都進行了Html編碼。

其實Html.ActionLink等輸出的都是MvcHtmlString,不過傳回string 的Helper在aspx中也可以用。

但Razor中隻能使用MvcHtmlString。

本文轉自火星人陳勇 51CTO部落格,原文連結:http://blog.51cto.com/cheny/1102222

繼續閱讀