hereとトピックhereを投稿したブログを使用していますので、すべてのエラーページを処理するコントローラを作成しました。MVC3カスタムエラーページは空白の結果を返します
は私のGlobal.asax.csでは、私は次のコードを持っている:
protected void Application_Error()
{
var exception = Server.GetLastError();
var httpException = exception as HttpException;
var routeData = new RouteData();
Response.Clear();
Server.ClearError();
routeData.Values["controller"] = "Error";
routeData.Values["action"] = "General";
routeData.Values["exception"] = exception;
Response.StatusCode = 500;
if (httpException != null)
{
Response.StatusCode = httpException.GetHttpCode();
switch (Response.StatusCode)
{
case 403:
routeData.Values["action"] = "Http403";
break;
case 404:
routeData.Values["action"] = "Http404";
break;
}
}
// Avoid IIS7 getting in the middle
Response.TrySkipIisCustomErrors = true;
IController errorsController = new ErrorController();
HttpContextWrapper wrapper = new HttpContextWrapper(Context);
var rc = new RequestContext(wrapper, routeData);
errorsController.Execute(rc);
}
私のErrorControllerは次のようになります。
public class ErrorController : BaseController
{
/// <summary>
/// Returns a default view for not having access.
/// </summary>
public ActionResult Unauthorized()
{
BaseModel viewModel = new BaseModel
{
LoginModel = new LogonModel(),
ProfessionsTopX = GetTopXProfessions()
};
return View(viewModel);
}
public ActionResult General(Exception exception)
{
return View("Exception", exception);
}
public ActionResult Http404()
{
//This line works
//return Content("Not found", "text/plain");
//This line presents a blank page
return View("404","_Layout");
}
public ActionResult Http403()
{
return View("403", "_Layout");
}
}
そして、私のレイザー見るだけの作品が含まれています下のhtml;
@{
ViewBag.Title = "404";
}
<h2>404</h2>
This is a 404 page!
私はReturn Contentを使用すると、私は404ページを見ていると言っているプレーンテキスト出力を取得しています。しかし、私は404ページを残りのデザインに合わせたいので、自分のビューを使用したいと思います。しかし、私はリターンビューを使用するとすぐに私は空白のページを取得しています。私は非常に明白な何かを見逃していると思うが、私はそれを見ない。
この全く同じことが、私のコードをモデル化した投稿まで、私に起こっています。 –
まったく同じことが私に起こっています。あなたはこの問題の解決策を見つけましたか? –