Я следил за ответами, предоставленными очень похожими сообщениями, как вы увидите в пошаговом описании ниже.
-
Тип Razor Тип не наследуется от "System.Web.WebPages.WebPage"
-
http://iamdotnetcrazy.blogspot.com/2012/08/how-to-solve-type-asppageviewstartcshtm.html
У меня все еще такое же сообщение об ошибке "не наследуется от "System.Web.WebPages.WebPage"
Обзор
Я изучаю от John Papa "Одиночные страницы с HTML5, веб-API, нокаутом и jQuery" на Pluralsight. В курсе описывается создание приложения под названием "Code Camper". Пример MVC4 SPA создает корневой вид под названием "index.cshtml". где производится серия вызовов @RenderPage. Это приложение отлично работает на моей машине разработки. Однако, если я попытаюсь создать с нуля MVC4 SPA с корнем view.cshtml, я всегда получаю ошибку "не наследует от "System.Web.WebPages.WebPage"
Шаг за шагом
Загрузите здесь.
1.Создайте новый проект MVC4 в Интернете под названием "MVC4RootView"
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.Added system.web.webPages.razor для root 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.Добавленный разделГруппа name= "system.web.webPages.razor" в configSections корневого web.config
<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.Set RootView.cshtml в качестве начальной страницы
8.Run и получите следующую ошибку: "Тип" ASP._Page_RootView_cshtml "не наследуется от "System.Web.WebPages.WebPage".
Я не могу понять, как это исправить. Код Code Camper работает отлично. Я сравнивал строки за строкой и не вижу различий в коде, который мешал бы работать.
Мысли? Dan