我在学习时正在构建一个非常基本的 MVC3 站点,并且在使用以下声明性 Razor html 帮助程序时遇到了困难。
在 App_Code 文件夹内的 RMB.cshtml 内:
@helper ReplaceCrLf(string strText)
{
@Html.Raw(Html.Encode(strText).Replace(Environment.NewLine, "<br />"));
}
在我的 index.cshtml 视图中:
@RMB.ReplaceCrLf(Model.Post)
这给了我一个关于 Html 的空引用异常,因为它似乎不知道它是什么。我可以通过将 Html 从视图传递给帮助程序来解决此问题,但我想知道是否有另一种方法让我的共享 html 帮助程序能够引用 Html 而无需将其传递给我编写的任何帮助程序?
为了完整起见,这里是工作解决方法:
在 App_Code 的 RMB.cshtml 中
@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)