[英]How to define razor helper for C# MVC project so that namespace is found?
MVC4,实体框架5,ASP.Net4。我正在尝试制作一个剃刀助手,以便在多个区域中使用。 已经问过几次了,但是在Google上实施了所有解决方案后,问题仍然存在。
智能感知正在识别帮助程序,但是在实时服务器上,我无法逃脱编译错误“找不到类型或名称空间名称'MyHelpers'(您是否缺少using指令或程序集引用?)”。
这是我所做的:
每一步骤之后,请清理,构建,重新启动Visual Studio,然后重新发布。 但是Razor编译器中仍无法识别辅助名称空间。
有人有什么想法吗?
不要使用视图助手( @helper
语法)。 这些仅在运行时评估,并且即使不是不可能正确测试也很困难。
而是创建一个扩展HtmlHelper
的静态类,如下所示:
public static class HtmlHelperExtensions
{
public static IHtmlString Sample(this HtmlHelper htmlHelper)
{
...
}
}
如果取消命名空间声明,它将变为全局声明,您可以从任何地方(包括视图)进行引用。 对于大多数事情来说,这是一个坏主意,但是对于扩展来说,这很好,除非您遇到使用具有相同方法名称的相似扩展的库的问题。 如果选择命名空间是安全的,则只需像以前一样将命名空间添加到视图目录的Web.config中即可。
我个人不喜欢在过去为网站项目设计的App_Code文件夹中添加类。
如果您的解决方案仅包含一个MVC项目,则只需在MVC项目内部创建一个名为Helpers的文件夹,然后将helpers类放入其中。
仅供参考: 如果您正在开发大型应用程序,则需要考虑为助手类创建一个单独的类库项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.