1

最近、プロジェクトを MVC 2 にアップグレードしました。エリアを使用したいのですが、問題があります。

新しいエリアを作成し、コントローラーをセットアップし、ルートを構成し、正しい場所にビューを作成しました。コードを実行すると、ルートが正常に検出されてコントローラーにヒットしますが、ビューをレンダリングしようとすると例外が発生します。

Web フォーム ビュー エンジンは、ビューの [領域] セクションを参照していないようです。表示されるエラーは次のとおりです。

~/Views/<ControllerName>/<ViewName>.aspx
~/Views/<ControllerName>/<ViewName>.ascx
~/Views/Shared/<ViewName>.aspx
~/Views/Shared/<ViewName>.ascx

それがいつあるべきか:

~/<AreaName>/Views/<ControllerName>/<ViewName>.aspx
~/<AreaName>/Views/<ControllerName>/<ViewName>.ascx
~/<AreaName>/Views/Shared/<ViewName>.aspx
~/<AreaName>/Views/Shared/<ViewName>.ascx
~/Views/<ControllerName>/<ViewName>.aspx
~/Views/<ControllerName>/<ViewName>.ascx
~/Views/Shared/<ViewName>.aspx
~/Views/Shared/<ViewName>.ascx

これは、まだ何らかの形で MVC 1 dll を使用していることを示していますが、注意深く調べたところ、MVC の V2 への参照しか見つかりませんでした (サードパーティの DLL である xVal に V1 参照がありましたが、それを修正しても問題は解決しませんでした)。違い)。

アップグレードを行ったときに何かを見逃したか、私たちが経験している問題に一致するものがウェブ上にないように見えるため、異常なエッジケースが発生したことしか想像できません.

この問題を解決するのに役立つ可能性のあるものは何ですか?

提供されたヘルプに事前に感謝します。乾杯、ザック

4

1 に答える 1

2

この問題を解決するのに役立つ可能性のあるものは何ですか?

  1. Area Routes are RegisteredAreaRegistration.RegisterAllAreas();が最初に登録されていることを確認します。エリアルートも登録する必要があります。
  2. およびその他の関連する URL ヘルパーを使用する場合は、生成された URL リンクに引数の 1 つとしてエリア名が含まれていることを確認してください。ActionLink
  3. 場合によっては、エリアを最初から削除して再度追加するだけです。ばかげているように聞こえますが、機能します。
  4. このページの左側にある関連する SO の質問が役立つ場合があります。価値があると思われるものをリンクしました
于 2010-09-29T09:15:32.177 に答える