代码之家  ›  专栏  ›  技术社区  ›  KallDrexx

从Asp.net MVC 2升级到3 RC后,将不会加载Aspx页

  •  22
  • KallDrexx  · 技术社区  · 14 年前

    我昨晚升级到了Asp.netmvc3rc,并按照发行说明中的说明进行了操作。但是,正常的Aspx页面不再工作。

    例如,当我转到根目录(Home/Index)时,会发生以下错误:

    The view at '~/Views/Home/Index.aspx' must derive from ViewPage, ViewPage<TModel>, ViewUserControl, or ViewUserControl<TModel>.
    

    这使用的是原始MVC Home/Index视图的一个几乎未经修改的版本。代码是:

    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
    
    <asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
        Home Page
    </asp:Content>
    
    <asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
        <h2><%= Html.Encode(ViewData["Message"]) %></h2>
        <p>
            <%= Html.ActionLink("Project List", "List", "Project", new { area = "writing" }, null) %>
        </p>
    </asp:Content>
    

    它设置为从ViewPage继承,因此我不确定问题是什么。

    母版页未经MVC安装的修改。

    有什么想法吗?

    1 回复  |  直到 10 年前
        1
  •  28
  •   Phil Strong    14 年前

    确保web.config具有

    <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <add assembly="WebMatrix.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    

    还有这个

    <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
    

    以及在任何区域/Web.config

    根据需要更新它们,你应该去一个更好的地方