Usando el blog publicado here y un tema here en SO he creado un controlador que debe manejar todas mis páginas de error.MVC3 páginas de error personalizadas dan resultado en blanco
En mis Global.asax.cs Tengo el siguiente fragmento de código:
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);
}
Mi ErrorController se ve así:
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");
}
}
Y mi Razor Ver sólo contiene la pieza de html a continuación;
@{
ViewBag.Title = "404";
}
<h2>404</h2>
This is a 404 page!
Cuando uso el contenido de la vuelta I estoy poniendo un textoutput llanura que me dice que estoy mirando un 404 páginas. Sin embargo, quiero que la página 404 se ajuste al resto de mi diseño, por lo que quiero usar mis propias Vistas. Sin embargo, tan pronto como uso Return View obtengo una página en blanco. Espero perderme algo muy obvio, pero no lo veo.
Me está sucediendo exactamente lo mismo, hasta las publicaciones en las que he modelado mi código. –
Me está sucediendo exactamente lo mismo. ¿Alguna vez encontró una solución para este problema? –