Ошибка синтаксического анализатора для строго типизированной главной страницы в MVC 2 - PullRequest
0 голосов
/ 10 мая 2011

Я пытаюсь создать главную страницу STRONGLY TYPED (MVC 2.0) и получаю следующую ошибку:

Parser Error Message: Could not load type 'System.Web.Mvc.ViewMasterPage<Resorts.Services.ViewModels.BaseView>'.

Вот мой код внутри мастер-страницы:

<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<Resorts.Services.ViewModels.BaseView>" %>
<%@ Import Namespace="Resorts.Services.ViewModels" %>

Resorts.Services.ViewModels.BaseView находится внутри отдельной сборки и на нее есть ссылка на главной странице. Resorts.Services.ViewModels.BaseView НЕ является абстрактным классом.

Я видел, что подобный вопрос был задан и решен здесь, НО я не мог найти решение:

Ошибка разбора ViewMasterPage

Вот файл ~ Views \ Web.Config, который я никоим образом не использую. Не уверен, если мне нужно внести какие-либо изменения в этом. Если я удаляю этот файл, в моих представлениях возникают ошибки синтаксического анализа.

<?xml version="1.0"?>
<configuration>
  <system.web>
    <httpHandlers>
      <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
    </httpHandlers>
    <pages
        validateRequest="false"
        pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
        userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
    </handlers>
  </system.webServer>
</configuration>

Если я делаю <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> в Master, все работает нормально, НО не нравится <%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<T>" %>: (

Ответы [ 3 ]

0 голосов
/ 11 мая 2011

В вашем файле web.config попробуйте добавить сборку в раздел <assemblies>, убедившись, что ваш проект действительно ссылается на сборку:

<compilation debug="true">
    <assemblies>
        ...
        <add assembly="Resorts.Services.ViewModels, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    </assemblies>
</compilation>

, а также пространство имен для раздела пространств имен:

<pages>
    <namespaces>
        ...
        <add namespace="Resorts.Services.ViewModels"/>
    </namespaces>
</pages>
0 голосов
/ 24 марта 2012

Убедитесь, что файл web.config в каталоге Views исправен.Отсутствовал мой и имел эту точную ошибку.

0 голосов
/ 10 мая 2011

Является ли сборка, в которой находится Resorts.Services.ViewModels.BaseView, также упоминается в самом проекте MVC?

Также ваше заявление на импорт приходит после использования. Попробуйте

<%@ Import Namespace="Resorts.Services.ViewModels" %>
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<Resorts.Services.ViewModels.BaseView>" %>
...