【发布时间】:2011-07-13 13:23:29
【问题描述】:
我在学习时正在构建一个非常基本的 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)
【问题讨论】:
-
基于这个answer,目前将自定义Helper放入AppCode文件夹是一个限制。
标签: asp.net-mvc asp.net-mvc-3 razor razor-declarative-helpers