我有自定义类扩展WebViewPage,我使用这个概述的方法作为所有我的Razor视图的基础:
http://haacked.com/archive/2011/02/21/changing-base-type-of-a-razor-view.aspx.一切正常,除非我将它移动到与视图本身的命名空间不同的命名空间,然后IntelliSense停止工作(是的,我在视图文件夹中的web.config的system.web.webPages.razor部分的名称空间部分中包含自定义WebViewPage的命名空间).有没有解决的办法?
我最终要做的是把所有的视图都转移到平面设计人员可以访问的另一个项目中,但是我不想在该项目中定制WebViewPage类.这是不是可能没有打破IntelliSense?
解决方法
这听起来很愚蠢,但重建并重新启动Visual Stu@R_301_410@几次:-D
我只是转载了这个问题,并尝试了一切工作(包括除了更改pageBaseType之外).我重新启动了VS,并开始工作.删除了该部分,它仍然可以在几个清理/重建/重启循环后工作.
我的意见/ Web.config有这样的:
<system.web.webPages.razor> <pages pageBaseType="ClassLibrary1.MyBasePage"> </system.web.webPages.razor>
我的Web项目有一个对ClassLibrary1项目的引用.
我的自定义类(在ClassLibrary1中)如下所示:
namespace ClassLibrary1 { public abstract class MyBasePage<T> : WebViewPage<T> { public string DannyName { get; set; } public MyBasePage() { this.DannyName = "Danny Tuppeny"; } } }
当在Web项目Views / Home / Index.cshtml中,当我键入“@D”时,我会获得“@DannyName”的智能感知.
我尝试的一些事情可能已经有效果,但是在我删除它之后它仍然工作:
>将pageBaseType添加到该部分的Views / web.config中
>添加了非泛型版本的类:
> public abstract class MyBasePage:MyBasePage {}