После перехода с MVC3 на MVC4 я получил сообщение об ошибке на странице просмотра темы - PullRequest
0 голосов
/ 05 февраля 2012

Я перенес решение ASP.NET MVC3 в MVC4. Все идет хорошо, пока я не «ввел» тему. Я проверил старые (MVC3) / новые (MVC4) версии своего решения, и все выглядит нормально, но я получил ошибку ниже:

enter image description here

enter image description here

Вот выдержка из файла Web.Config для темы по умолчанию:

<?xml version="1.0"?>

<configuration>
  <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>
  </configSections>

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

Как видите, pageBaseType имеет вид «MyBlog.Core.ApplicationViewPage»

Вот класс ApplicationViewPage:

public abstract class ApplicationViewPage<TModel> : WebViewPage<TModel>
{
    public SiteConfiguration SiteConfiguration { get; private set; }

    public override void InitHelpers()
    {
        SiteConfiguration = SiteManager.CurrentConfiguration;
        base.InitHelpers();
    }
}

Я почти уверен, что это глупая проблема, но я не могу ее исправить!

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 07 августа 2012

Попробуйте добавить `1 к значению атрибута pageBaseType

<pages pageBaseType="MyBlog.Core.ApplicationViewPage`1">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...