0

私は MVC 4 を使用しており、プロジェクトにいくつかの領域があり、各領域内にいくつかのビューと部分ビューがあります。

Areas
    AdminArea   => one area and so on
        Views
           Customer
              Customer.cshtml         => my View
              _CustomerDetails.cshtml => my partial View

私のコントローラーである CustomerController には、失敗する次のコードがあります。

return PartialView("_CustomerDetails", model) => fails to find my partial view.

でも、電話したら

return PartialView("~/Areas/AdminArea/Views/Customer/_CustomerDetails.cshtml", model) 

コードは正常に実行されます。

マイ ビュー (部分ビューではない) はすべて正常に動作します。完全なパスを指定せずにOKをレンダリングするいくつかの部分的なビュー(同じ領域にも)がありますが、何らかの理由で、それらのほとんどについて、上記のコードはコンストラクターで次のように言って失敗します:

The partial view '_CustomerDetails' was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Customer/_CustomerDetails.cshtml a.s.o. ... => and is searching in global not in Admin area.

コードで PartialViews へのフル パスを指定せずに、この問題を解決する方法はありますか? (.cshtml ファイルで行うように、area="Admin" を渡すように)。私はカスタム ViewEngine を使用しておらず、Global.asax.cs で AreaRegistration.RegisterAllAreas() を呼び出しました。

ありがとう、タマシュ

4

2 に答える 2

1

奇妙に思えます。コントローラー アクション メソッドからビューを追加してみてください。つまり、コントローラーでアクション メソッドを右クリックし、ビューを追加し、ビューを部分ビューにして、それが追加された場所を確認します。配置している場所と同じかどうかを確認してください。いくつかの構造上の問題/バグがあります。

于 2013-09-05T15:03:55.990 に答える