4

既存の ASP.net MVC 2 Web アプリケーションを MVC 3 にアップグレードしようとしています。これにより、Razor Viewengine の優れた点やその他の改善点を利用できます

コンバーターを使用してアプリを mvc2 から mvc3 に変換した後、厳密に型指定されたビューで問題が発生しました。ここでの例として、クラス Profile に強く型付けされたビュー ユーザー コントロールがあります。

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Profile>" %>

コンパイル中に私は得ています

Compiler Error Message: CS1061: 'object' does not contain a definition for 'folio' and no extension method 'folio' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

私の見解ではこの行に対応します 代替テキスト

したがって、ビューがタイプを受け入れなくなったようです。これは、ユーザー コントロールと完全なビューで発生しています。

web.config と views/web.config の両方を確認しましたが、どちらも System.Web.Mvc バージョン 3.0.0.0 を参照しているようです

どんな助けでも大歓迎です!

web.configs のスクリーン キャプチャについては、以下を参照してください。

代替テキスト

代替テキスト

代替テキスト

4

5 に答える 5

7

これは MVC 3 Preview 1 のバグであり、次のリリースで対処される予定です。暫定的に、<%@ Control %> ディレクティブがファイルの最後のディレクティブになるようにページを再配置できます。これが問題になるはずです。

于 2010-08-19T23:15:00.303 に答える
5

移行が示唆したように、「Views」フォルダーの web.config を (新しく作成した mvc3 プロジェクトの 1 つに) 置き換えただけで、うまくいきました。プロジェクトが大きすぎたため、すべての宣言を一番下に移動する準備ができていませんでした。

これはおそらく手遅れですが、お役に立てば幸いです。多分それは他の人を助ける...

于 2010-11-30T15:16:08.500 に答える
4

機会があれば、に変更してみてbindingRedirectください

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
于 2010-08-19T05:24:23.370 に答える
0

プロジェクトが MVC4 に基づいているか、Framwork 4 を既に使用している場合は、mvc4 の空のプロジェクトを作成します。次に、views フォルダーの web.config を置き換えます。すぐに機能します。ありがとう、ワイアン。カミソリではなくaspxを使用した古いアプリがあるためです。Framework 3 を 4 にアップグレードした後、このエラーが発生しました。

于 2013-01-10T18:30:09.777 に答える
0

私はまったく同じ問題を抱えていて、髪を少し引っ張った後、Wiaanの解決策を見つけて従いました。完璧に機能し、サイトが復旧しました。

おもしろいことに、開発ボックスでこの変更を行わなくても、サイトが壊れることはありませんでした。サイトをステージング サーバーに移動したときだけ、それが現れました。

于 2011-01-19T22:01:28.003 に答える