asp.net MVC 2 - MVC 2 中强类型母版页的分析器错误



我正在尝试创建一个强类型母版页 (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不是抽象类。

我看到一个类似的问题在这里被提出并解决了,但我无法找出解决方案:

解析错误 视图母版页

这是~视图\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 中<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>一切正常,但它不喜欢<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage<T>" %> :(

Resorts.Services.ViewModels.BaseView所在的程序集是否也在 MVC 项目本身中引用?

此外,您的导入语句出现在使用之后。尝试

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

在 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>

确保视图目录中的 web.config 文件是可用的。 缺少我的并且有这个确切的错误。

最新更新