Korzystanie z bloga opublikowanego here i tematu here na SO Stworzyłem kontroler, który powinien obsługiwać wszystkie moje strony błędów.Strony błędów niestandardowych MVC3 dają pusty wynik
W moich Global.asax.cs Mam następujący fragment kodu:
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);
}
Moja ErrorController wygląda następująco:
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");
}
}
A moja Razor View zawiera tylko kawałek html poniżej;
@{
ViewBag.Title = "404";
}
<h2>404</h2>
This is a 404 page!
Kiedy używam zawartość Return Dostaję zwykły textoutput mówią mi, że jestem patrząc na 404 stronie. Jednak chcę, aby strona 404 pasowała do reszty mojego projektu, więc chcę używać własnych widoków. Jednak, gdy tylko używam widoku Powrotu, otrzymuję pustą stronę. Oczekuję, że przegapię coś bardzo oczywistego, ale nie widzę tego.
Dokładnie to samo dzieje się ze mną, aż do postów, po których modelowałem mój kod. –
Dokładnie to samo mi się dzieje. Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? –