我正在尝试将“经典”ASP.NET MVC 视图移植到 Razor,但在尝试使用传统(非 Razor)Html 帮助器方法时遇到了困难。辅助方法具有以下签名:
public static string WrappedValidationSummary(this HtmlHelper htmlHelper, string SummaryError)
{
...
}
在常规(非 Razor)视图中使用辅助方法时,它确实可以正常工作。
在 Razor 视图中使用它时,如下所示:
@Html.WrappedValidationSummary("Mitarbeiter konnnte nicht angelegt werden.");
我收到一条运行时错误消息
'System.Web.Mvc.HtmlHelper'
不包含以下定义
'WrappedValidationSummary' 并且没有
扩展方法
'WrappedValidationSummary' 接受
类型的第一个参数
'System.Web.Mvc.HtmlHelper'
可以找到(您是否缺少
使用指令或程序集
参考?)
Visual Studio 和 Intellisense 中的 Razor 语法检查器可以毫无问题地找到我的扩展方法的定义。重新编译项目没有帮助。
出了什么问题?
您是否已将助手的命名空间添加到 Views/web.config 中?
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="CUSTOM_NAMESPACE" />
</namespaces>
</pages>
</system.web.webPages.razor>
上面的内容仅在您使用 RC 时才有效,如果您处于早期 Beta 版,则需要在页面或 Global.asax 中添加名称空间。
另外,我建议将返回类型更改为HtmlString
.
return new HtmlString(STRING_VALUE);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)