5

我正在通过创建一个新的 ASP.Net Mvc 5 骨架然后放入内容来升级站点。目前,除了强类型视图之外,一切似乎都在工作。所有Model属性访问都失败,很明显使用了非泛型控制器。

例子:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MySite.Models.MyViewModel>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <h1><%= Model.Title %></h1>
</asp:Content>

我收到错误“对象”不包含“标题”的定义并且没有扩展方法...

Going to Definition on Model 将我带到这里:

namespace System.Web.Mvc
{
    // Summary:
    //     Represents the properties and methods that are needed to render a view as
    //     a Web Forms page.
    [FileLevelControlBuilder(typeof(ViewPageControlBuilder))]
    public class ViewPage : Page, IViewDataContainer
    {
        <snip>
        public object Model { get; }

怎么会选错项目?

该项目是作为 MVC4 项目创建的,然后在添加任何代码之前使用 nuget 升级到 MVC5。

4

2 回答 2

3

遗憾的是,ASP.NET MVC 5 的 Nuget 包似乎没有处理所需的 web.config 和代码更改以支持 ASP.NET MVC 5 中的所有内容。请查看http://www.asp。 net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2这应该会有所帮助您执行 Nuget 包未涵盖的所需手动升级步骤。

于 2013-10-28T01:23:46.010 回答
3

对我来说,View/web.config由于默认配置假定剃须刀,因此我在我的文件中特别错过了这一点。

  <system.web>
    <compilation>
      <assemblies>
        <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </assemblies>
    </compilation>

    <pages pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, 
       Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
           pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, 
       Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
       userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, 
       Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
           >
      <namespaces>
        <add namespace="System.Web.Mvc"/>
        <add namespace="System.Web.Mvc.Ajax"/>
        <add namespace="System.Web.Mvc.Html"/>
        <add namespace="System.Web.Routing"/>
      </namespaces>
    </pages>
  </system.web>
于 2017-05-17T20:18:18.083 回答