Mit dem Blog gepostet here und ein Thema here auf, damit ich einen Controller erstellt haben, die meine Fehler alle Seiten behandeln soll.MVC3 Benutzerdefinierte Fehlerseiten gibt leeres Ergebnis
In meinem Global.asax.cs Ich habe das folgende Stück Code bekommt:
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);
}
Mein Errorcontroller wie folgt aussieht:
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");
}
}
Und meine Rasiermesser Ansicht enthält nur das Stück HTML unten; Ich freue mich auf eine 404-Seite
@{
ViewBag.Title = "404";
}
<h2>404</h2>
This is a 404 page!
Wenn ich den Return Inhalt verwende ich bin eine einfache Textausgabe immer mir zu sagen. Ich möchte jedoch, dass die 404-Seite dem Rest meines Designs entspricht, daher möchte ich meine eigenen Ansichten verwenden. Sobald ich jedoch Return View verwende, erhalte ich eine leere Seite. Ich erwarte etwas sehr Offensichtliches zu verpassen, aber ich sehe es nicht.
Genau dasselbe geschieht mir, bis auf die Posts, nach denen ich meinen Code modelliert habe. –
Genau dasselbe passiert mir. Haben Sie jemals eine Lösung für dieses Problem gefunden? –