ルートが見つからない場合は、通常のHTTP 404エラーとして処理します。
クラスまたはアクションに[HandleError]
属性のみを追加すると、MVCはビューフォルダ内でError
ビューを探します。
またErrorController
、あるいは静的なページを追加し、Web.config
にこれを追加することができます。
<customErrors mode="On" >
<error statusCode="404" redirect="/Error/PageNotFound/" />
</customErrors>
それとも、プログラムErrorController
にごGlobal.asax.cs
とルートでHTTP 404を扱うことができます。それは私が、一般的にそれを行う方法は次のとおりです。このアプローチの
protected void Application_Error(object sender, EventArgs e)
{
var ex = Server.GetLastError().GetBaseException();
var routeData = new RouteData();
if (ex.GetType() == typeof(HttpException))
{
var httpException = (HttpException)ex;
switch (httpException.GetHttpCode())
{
case 404:
routeData.Values.Add("action", "PageNotFound");
break;
default:
routeData.Values.Add("action", "GeneralError");
break;
}
}
else
{
routeData.Values.Add("action", "GeneralError");
}
routeData.Values.Add("controller", "Error");
routeData.Values.Add("error", ex);
IController errorController = new ErrorController();
errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));
}
問題は、あなたが間違った値を持つ子どもの行動の@ Html.Action(routeValues)をレンダリングしよう..それは 'PartialView'として' PageNotFound'アクションをレンダリングするということです例外を実際に報告することはありません。 – Nenad