asp.netmvc3Webサイトのエラーページをカスタムしたい。
だから、私はこの非常に便利な投稿を見つけました:asp.netMVC3のカスタムエラーページとそれはうまく機能します
ただし、私のHttp404.cshtmlファイルはViewsデフォルトのフォルダにありません。。という名前のフォルダにありますBaseViews。そのフォルダには、自分_Layout.cshtmlと他のビューまたは部分的なビューがすでにあります。
このフォルダはデフォルトではチェックされていません(フォルダとmyのすべてのフォルダViewEngineのみをチェックします)。そこで、ViewEngineExtensionを使用して、のコレクションに追加します。私のアプリケーションはすべて完全に正常に動作し、レイアウトやその他のものにアクセスできます。ViewsviewsAreasSystem.Web.Mvc.ViewEnginesGlobal.asaxApplication_Start()BaseViews
Global.asax'sについても同じことは言えませんApplication_Error()。このメソッドは、以前のビューエンジンを無視し、デフォルトのビューフォルダーのみを調べます。Application_Error()このようにViewEngineExtensionをメソッドに追加しようとしましたViewEngines.Engines.Add(new BaseViewsEngineExtension());が、何も変更されません。で使用しているのとまったく同じ行ですApplication_Start()。
:については私のコードを参照してApplication_Error()ください
protected void Application_Error()
{
var exception = Server.GetLastError();
var httpException = exception as HttpException;
Response.Clear();
Server.ClearError();
var routeData = new RouteData();
routeData.Values["controller"] = "Error";
routeData.Values["action"] = "Index";
routeData.Values["exception"] = exception;
Response.StatusCode = 500;
if (httpException != null)
{
Response.StatusCode = httpException.GetHttpCode();
switch (Response.StatusCode)
{
case 404:
routeData.Values["action"] = "Http404";
break;
}
}
IController errorController = new ErrorController();
var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
errorController.Execute(rc);
}
私の質問は次のとおりです。ビューエンジンにフォルダ内errorController.Excecute(rc)のHttp404.cshtmlビューを検索させるにはどうすればよいですか?BaseViews