here numaralı blogda ve SO üzerinde here numaralı bir iletiyi kullanarak tüm hata sayfalarım işlemesi gereken bir denetleyici oluşturdum.MVC3 Özel hata sayfaları boş sonuç veriyor
benim Global.asax.cs ben aşağıdaki kod parçası var:
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);
}
Benim ErrorController şöyle görünür:
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");
}
}
Ve Razor View sadece parçasını içermektedir html aşağıda;
@{
ViewBag.Title = "404";
}
<h2>404</h2>
This is a 404 page!
Ben düz textoutput i 404 sayfa bakıyorum bana alıyorum Dönüş İçeriği kullanma
. Ancak, 404 sayfasının tasarımımın geri kalanına sığmasını istiyorum, bu yüzden kendi Görünümlerimi kullanmak istiyorum. Ancak İade Görünümü'nü kullandığım anda boş bir sayfa alıyorum. Çok açık bir şeyi kaçırmayı umuyorum ama göremiyorum.
Bu aynı şey, benim kodumdan sonra modellemediğim yazılara kadar oluyor. –
Bu aynısı bana oluyor. Bu problem için bir çözüm buldunuz mu? –