asp.net-mvc – ASP.Net MVC4根cshtml和“不继承’System.Web.WebPages.WebPage”

我已经按照下面列出的一步一步看到的非常相似的帖子提供的答案。

> Razor view Type does not inherit from ‘System.Web.WebPages.WebPage’
> http://iamdotnetcrazy.blogspot.com/2012/08/how-to-solve-type-asppageviewstartcshtm.html

我仍然有同样的错误信息“不继承’System.Web.WebPages.WebPage’”

概观

我正在学习John Papa在“Pluralsight”上的“使用HTML5的单页应用程序,Web API,Knockout和jQuery”。该课程概述了构建一个名为“Code Camper”的应用程序。示例MVC4 SPA创建一个名为“index.cshtml”的根视图。在那里进行一系列@RenderPage调用。这个应用程序在我的开发机器上运行正常。但是,如果我尝试从头创建一个MVC4 SPA与根view.cshtml我总是得到错误“不继承’System.Web.WebPages.WebPage”

一步步

下载here

1.创建一个名为“MVC4RootView”的新MVC4 Internet项目

2.在项目的根目录中,创建一个RootView.cshtml视图。

@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title></title>
</head>
<body>
    <div>
            @RenderPage("Views/Partial1.cshtml")
    </div>
</body>
</html>

3.添加一个“〜/ Views / Partial1.cshtml”,只需一个简单的div

<div>Hello from Partial 1</div>

4.修改根Web.Config网页:启用为true。

<add key="webpages:Enabled" value="true" />

5.添加system.web.webPages.razor到根Web.config

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory,System.Web.Mvc,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="System.Web.Mvc" />
      <add namespace="System.Web.Mvc.Ajax" />
      <add namespace="System.Web.Mvc.Html" />
      <add namespace="System.Web.Optimization"/>
      <add namespace="System.Web.Routing" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

6.添加sectionGroup name =“system.web.webPages.razor”到根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,PublicKeyToken=31BF3856AD364E35">       
    <section name="host"
        type="System.Web.WebPages.Razor.Configuration.HostSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    <section name="pages"
        type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

将RootView.cshtml设置为起始页

8.运行并收到以下错误:“键入”ASP._Page_RootView_cshtml“不会继承自”System.Web.WebPages.WebPage“。

我失去了如何解决这个问题。代码露营地代码工作正常。我已经逐行比较,看到代码中没有区别,这将阻止工作。

思考?

解决方法

从您的Views文件夹中删除web.config。

当你包含该文件夹中的Partial1.cshtml时,它也包括在那里的web.config。而web.config表示所有页面都必须继承自WebViewPage。

相关文章

判断URL文件是不是在于在。private static bool UrlIsExist(...
由于在.net中,Request时出现有HTML或Javascript等字符串时,...
public static bool ProcessIdCard(this string idCard, out...
protected void Page_Load(object sender, EventArgs e){ Sc...