RazorViewEngine クラスには、さまざまなビュー ファイル (領域、パーシャルなど) を探す場所のパターンを持つプロパティが含まれています。これを非常に簡単にオーバーライドして、代わりに独自の実装を使用するように Globals.asax でアプリケーションに指示できます。
public class MyViewEngine : RazorViewEngine
{
public MyViewEngine()
{
// Use the standard partials location in addition to this location
// {0} is the partial view name, {1} is the controller name
String[] morePartialLocations = new String[] {
"~/areas/shared/views/shared/{0}.cshtml"
};
PartialViewLocationFormats =
PartialViewLocationFormats.Concat(morePartialLocations).ToArray();
}
}
// in Globals.asax
protected void Application_Start()
{
...
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new MyViewEngine());
...
}
エリアで作業しているように聞こえるのでAreaViewLocationFormats
、同じ方法で更新し、エリアの名前として「{2}」を挿入できる、オーバーライドできる別のプロパティが呼び出されることに注意してください。