小编Apm*_*meM的帖子

Razor视图类型不继承自'System.Web.WebPages.WebPage'

我在配置asp.net mvc应用程序时遇到问题:

[HttpException (0x80004005): Type 'ASP._Page_Currency_Index_cshtml' does not inherit from 'System.Web.WebPages.WebPage'.]
System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) +11454171
System.Web.WebPages.BuildManagerWrapper.CreateInstanceOfType(String virtualPath) +347
System.Web.WebPages.VirtualPathFactoryManager.CreateInstanceOfType(String virtualPath) +239
System.Web.WebPages.WebPageHttpHandler.CreateFromVirtualPath(String virtualPath, IVirtualPathFactory virtualPathFactory) +57
System.Web.WebPages.WebPageRoute.DoPostResolveRequestCache(HttpContextBase context) +407
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270
Run Code Online (Sandbox Code Playgroud)

我想要做的步骤:

  • 将控制器及其视图移动到单独的库中,并将dll放入bin文件夹.
  • 创建虚拟文件提供程序和虚拟文件以从程序集中获取数据:

    public override Stream Open()
    {
        var resourceName = this.path;
        var asmName = this.assembly.GetName().Name;
        var manifestName = asmName + ".Views" + resourceName.Trim('~').Replace("/", ".");
        var resourceStream = this.assembly.GetManifestResourceStream(manifestName);
        return resourceStream;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 将此行添加到web.config中:

    <configSections>
      <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, …
    Run Code Online (Sandbox Code Playgroud)

webforms webforms-routing webforms-view-engine asp.net-mvc-3

5
推荐指数
1
解决办法
1万
查看次数