我正在使用VirtualPathProvider提供主题视图。
在操作方法中,我想通过路径返回视图
return View("~/Themes/SomeTheme.dll/Views/Content/Item.cshtml");
在Visual Studio中,Item.cshtml有一个构建操作“Embedded Resource” VirtualPathProvider找到.cshtml文件,但是我收到错误
The view at '~/Themes/SomeTheme.dll/Views/Content/Item.cshtml' must derive from WebViewPage, or WebViewPage<TModel>.
我想我必须编译该视图,然后我跟着these instructions。
现在VirtualPathProvider无法找到Item.cshtml,因为它不再是嵌入式资源。
我该如何解决这个问题?我无法添加对SomeTheme.dll的引用,因为在应用程序启动时动态加载了激活的主题。
我之前用aspx文件完成了这个,而且不需要编译。他们开箱即用作为嵌入式资源。
答案 0 :(得分:2)
我遇到了嵌入式aspx视图的类似问题。查看页面时发生的编译依赖于views文件夹的web.config中的某些设置。嵌入式资源不在views文件夹中,因此请勿使用这些设置并且无法编译。
答案 1 :(得分:1)
尝试install-package EmbeddedResourceVirtualPathProvider
答案 2 :(得分:0)
尝试this solution在View类库中处理intellisense。您可能需要将以下行添加到该web.config。
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
此外,尝试将@Inherits System.Web.Mvc.WebViewPage语句添加到每个嵌入视图(或替换您使用的基本句子)以在运行时处理此问题。