重构代码:增加ErrorModel,使用统一的Error视图,删除NotFound错误页面

This commit is contained in:
Argo-Surface 2018-11-20 22:27:24 +08:00
parent 0e9b2f7890
commit d9eae9bac3
5 changed files with 50 additions and 25 deletions

View File

@ -20,6 +20,7 @@ namespace Bootstrap.Admin.Controllers
var url = DictHelper.RetrieveHomeUrl();
return url.Equals("~/Home/Index", System.StringComparison.OrdinalIgnoreCase) ? (IActionResult)View(new HeaderBarModel(User.Identity)) : Redirect(url);
}
/// <summary>
///
/// </summary>
@ -29,8 +30,21 @@ namespace Bootstrap.Admin.Controllers
public IActionResult Error(int id)
{
var returnUrl = Request.Query[CookieAuthenticationDefaults.ReturnUrlParameter].ToString();
ViewBag.ReturnUrl = string.IsNullOrEmpty(returnUrl) ? Url.Content("~/Home/Index") : returnUrl;
return id == 404 ? View("NotFound") : View();
var model = new ErrorModel() { ReturnUrl = string.IsNullOrEmpty(returnUrl) ? Url.Content("~/Home/Index") : returnUrl };
model.Title = "服务器内部错误";
model.Content = "服务器内部错误";
model.Image = "error_icon.png";
if (id == 0)
{
model.Content = "未处理服务器内部错误";
}
else if (id == 404)
{
model.Title = "资源未找到";
model.Content = "请求资源未找到";
model.Image = "404_icon.png";
}
return View(model);
}
}
}

View File

@ -0,0 +1,28 @@
namespace Bootstrap.Admin.Models
{
/// <summary>
///
/// </summary>
public class ErrorModel
{
/// <summary>
///
/// </summary>
public string Title { get; set; }
/// <summary>
///
/// </summary>
public string Content { get; set; }
/// <summary>
///
/// </summary>
public string Image { get; set; }
/// <summary>
///
/// </summary>
public string ReturnUrl { get; set; }
}
}

View File

@ -1,6 +1,5 @@
using Bootstrap.DataAccess;
using Bootstrap.Security.Filter;
using Longbow.Logging;
using Longbow.Web;
using Longbow.Web.SignalR;
using Microsoft.AspNetCore.Authentication;

View File

@ -1,5 +1,6 @@
@{
ViewBag.Title = "服务器内部错误";
@model ErrorModel
@{
ViewBag.Title = Model.Title;
Layout = "_Layout";
}
@section css {
@ -9,9 +10,9 @@
<script src="~/js/error.js"></script>
}
<section class="error-wrapper">
<img src="~/images/error_icon.png" />
<h1>服务器内部错误</h1>
<img src="~/images/@Model.Image" />
<h1>@Model.Content</h1>
<h3>相关错误信息已经记录到日志中,请登录服务器查看</h3>
<br />
<a href="@ViewBag.ReturnUrl" target="_top">返回首页</a>
<a href="@Model.ReturnUrl" target="_top">返回首页</a>
</section>

View File

@ -1,17 +0,0 @@
@{
ViewBag.Title = "资源未找到";
Layout = "_Layout";
}
@section css {
<link href="~/css/error.css" rel="stylesheet" />
}
@section javascript {
<script src="~/js/error.js"></script>
}
<section class="error-wrapper">
<img src="~/images/404_icon.png" />
<h1>请求资源未找到</h1>
<h3>相关错误信息已经记录到日志中,请登录服务器查看</h3>
<br />
<a href="@ViewBag.ReturnUrl" target="_top">返回首页</a>
</section>