Sử dụng blog được đăng here và một chủ đề here trên SO tôi đã tạo một trình điều khiển sẽ xử lý tất cả các trang lỗi của tôi.MVC3 Trang lỗi tùy chỉnh cho kết quả trống
Trong Global.asax.cs của tôi, tôi đã có những đoạn mã sau đây:
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 của tôi trông như thế này:
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");
}
}
Và Razor View tôi chỉ chứa các mảnh html bên dưới;
@{
ViewBag.Title = "404";
}
<h2>404</h2>
This is a 404 page!
Khi tôi sử dụng Nội dung trả lại, tôi nhận được văn bản đơn giản cho tôi biết tôi đang xem trang 404. Tuy nhiên, tôi muốn trang 404 phù hợp với phần còn lại của thiết kế của tôi, vì vậy tôi muốn sử dụng Chế độ xem của riêng mình. Tuy nhiên ngay khi tôi sử dụng Return View, tôi nhận được một trang trống. Tôi hy vọng sẽ thiếu một cái gì đó rất rõ ràng, nhưng tôi không thấy nó.
Điều chính xác tương tự đang xảy ra với tôi, xuống đến các bài đăng mà tôi đã mô hình hóa mã của mình sau đó. –
Điều này cũng chính xác đang xảy ra với tôi. Bạn đã bao giờ tìm ra giải pháp cho vấn đề này chưa? –