我遵循了非常相似的帖子提供的答案,正如你将在下面列出的步骤中看到的那样。
我仍然有相同的错误信息“不从‘System.Web.WebPages.WebPage’继承”
概述
我正在学习John Papa在Pluralsight上的"Single Page Apps with HTML5,Web,Knockout and jQuery“。本课程概述了如何构建一个名为"Code Camper“的应用程序。示例MVC4 SPA创建了一个名为"index.cshtml“的根视图。其中进行了一系列@RenderPage调用。这个应用程序在我的开发机器上运行得很好。但是,如果我尝试从头开始创建具有根view.cshtml的MVC4 SPA,我总是得到错误"does not inherit from 'System.Web.WebPages.WebPage“。
循序渐进
下载here。
1.创建一个名为"MVC4RootView“的新MVC4互联网项目
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.仅使用简单的div添加了“~/Views/Partial1.cshtml”
<div>Hello from Partial 1</div>
4.修改根Web.Config网页:启用为true。
<add key="webpages:Enabled" value="true" />
5.向根Web.config添加system.web.webPages.razor
<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, Culture=neutral,
PublicKeyToken=31BF3856AD364E35">
<section name="host"
type="System.Web.WebPages.Razor.Configuration.HostSection,
System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages"
type="System.Web.WebPages.Razor.Configuration.RazorPagesSection,
System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
7.将RootView.cshtml设置为起始页
8.运行并得到以下错误:“类型'ASP._Page_RootView_cshtml‘没有从'System.Web.WebPages.WebPage’继承。
我不知道如何解决这个问题。Code Camper代码运行良好。我已经逐行进行了比较,没有发现代码中会妨碍工作的差异。
有什么想法?丹
发布于 2013-01-19 10:06:08
从Views
文件夹中删除web.config
。
当您包含该文件夹中的Partial1.cshtml
时,它也包含其中的web.config。web.config的意思是所有页面都必须从WebViewPage继承。
发布于 2017-10-16 22:19:12
我是一个初学者,但我没有意识到cshtml页面是通过控制器提供服务的,而不是通过直接加载它们。
结合以上内容,我还必须在web.config文件中将以下键设置为false:
<add key="webpages:Enabled" value="false" />
发布于 2017-08-18 20:35:29
不要删除webconfig,在你的视图中是一个非常重要的文件!
相反,请执行以下操作:
在失败的web项目中启用“查看所有文件”,搜索似乎正确但未包含在visual studio中的文件,然后将其删除。如果在部署文件夹中失败,请尝试清理文件夹,然后重新部署站点,您可能具有可能导致相同问题的不必要文件。
在我的例子中,在had项目的根目录下,我有一个额外的_ViewStart.cshtml副本(从项目中排除),我删除了那个文件,这就起到了作用。
希望它有帮助,让我知道这是否也解决了你的问题。
https://stackoverflow.com/questions/14402315
复制相似问题