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>

「オブジェクト」には「タイトル」の定義が含まれておらず、拡張メソッドもありませんというエラーが表示されます...

モデルの定義に移動すると、次のようになります。

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 パッケージは、ASP.NET MVC 5 のすべてをサポートするために必要な web.config とコードの変更を処理していないようです。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 に答える