我正在尝试将View添加到我的MVC项目中的任意文件夹(〜/ SomeOtherViewDirectory )。这工作正常,直到我修改视图使用强类型。
即,如果页面继承自 System.Web.Mvc.ViewPage ,它编译并运行正常,但如果它继承自 System.Web.Mvc.ViewPage 它不是。当我打开页面编译时,它将无法编译(找不到类型),否则会抛出运行时异常。
我正在使用自定义ViewEngine - 它只是标准的WebFormsViewEngine,带有用于查找视图的自定义位置字符串。
有趣的是,在Views目录中可以使用相同的(空)页面。我可以修改我的ViewEngine以指向视图的一些子子目录(比如〜/ Views / This / Is / Weird /)并在那里复制/粘贴页面,所有内容都编译并运行正常。
WTH?
答案 0 :(得分:2)
对于Views文件夹之外的视图,我们需要修改web.config。如果检查views文件夹中的web.config,您会注意到这个附加配置,要么在这些附加文件夹中创建一个新的web.config,要么将其添加到根web.config文件中。
<pages
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
尝试一下,希望能解决你的问题。