我创建了一个自定义WebViewPage
。这允许我在我的Razor视图中添加自定义助手:
public abstract class CompanyNameWebViewPage<TModel> : WebViewPage<TModel>
{
public override void InitHelpers()
{
base.InitHelpers();
CompanyName = new CompanyNameHtmlHelper<TModel>(this.Html);
}
public CompanyNameHtmlHelper<TModel> CompanyName { get; protected set; }
}
在我的Razor中使用它:
@CompanyName.Theme.Image("logo.png")
问题是CompanyName
是我真正想要用于HTML帮助程序的名称和我们的代码所在的命名空间。因此,在visual studio @CompanyName.Theme.etc
中解析为CompanyNameHtmlHelper
}。
但是,在运行时我收到错误:
The type or namespace name 'Theme' does not exist in the namespace 'CompanyName' (are you missing an assembly reference?)
很明显CompanyName
现在正在解析命名空间而不是HtmlHelper。
为什么会这样?为什么Visual Studio允许我这样做会给我一个运行时错误?有没有工作?拿出一些令人费解的名字而不仅仅是我公司的名字真的很烦人。