我正在構建一個非常基本的MVC3網站,同時學習了以下聲明式Razor html助手。在App_Code中使用共享@helper中的@Html
內RMB.cshtml App_Code文件夾內:
@helper ReplaceCrLf(string strText)
{
@Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
裏面我index.cshtml觀點:
@RMB.ReplaceCrLf(Model.Post)
這給我的助手HTML的一個空引用異常,因爲它不」 t似乎知道它是什麼。我可以通過將Html從視圖傳遞給幫助程序來解決這個問題,但是我想知道是否有另一種方式讓我的共享html幫助程序能夠引用Html,而無需將它傳遞給我寫的幫助程序?
爲了完整起見,這裏的工作解決方法:
在RMB.cshtml在App_Code文件
@helper ReplaceCrLf(string strText, System.Web.Mvc.HtmlHelper Html)
{
@Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
在index.cshtml鑑於
@RMB.ReplaceCrLf(Model.Post, Html)
: //stackoverflow.com/questions/4451287/razor-declarative-html-helpers/4453637#4453637),它目前是在AppCode中放置自定義助手的限制文件夾中。 –