2023-02-17 396
如何在ASP.NET MVC预览5中获取[HandleError]过滤器?
我在我的web.config文件中设置了customerrors
<customErrors mode="On" defaultRedirect="Error.aspx">
<error statusCode="403" redirect="NoAccess.htm"/>
<error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>
并将[handerError]放在我的控制器类上方如下:
[HandleError]
public class DSWebsiteController: Controller
{
[snip]
public ActionResult CrashTest()
{
throw new Exception("Oh Noes!");
}
}
然后我让我的控制器继承自此类并调用Crashtest().
Visual Studio在错误中停止,然后按F5继续,我会重新输出到Error.aspx?aspxerrorpath =/sxi.mvc/crashtest(其中sxi是已用控制器的名称.
禁止路径无法找到,我会在’/’应用程序中获得”服务器错误”. 404.
本网站从预览3到5移植.
除了错误处理之外,一切都运行(对端口没有很多工作).
当我创建一个完整的新项目时,错误处理似乎工作.
想法?
– 注意 –
由于此问题现在已经超过3k查看,我认为将其目前(ASP.NET MVC 1.0)置于使用的内容是有益的.
在 mvc contract项目有一个名为”Rescueattribute”的辉煌属性
你应该也应该看看;)
[HandleError]
当您只提供给您的类(或对该事项的操作方法)时,当未处理的异常发生时,MVC将在Controller View文件夹中查找名为”错误”的相应视图.如果在那里找不到它,那么它将继续查看共享视图文件夹(默认情况下应该有一个错误.Aspx文件)
[HandleError(ExceptionType = typeof(SqlException), View = "DatabaseError")]
[HandleError(ExceptionType = typeof(NullReferenceException), View = "LameErrorHandling")]
您还可以使用有关您要查找的异常类型的特定信息堆叠其他属性.此时,您可以将错误指向除默认的”错误”视图之外的特定视图.
欲了解更多信息,请查看 scott guthrie的博客文章它.
还应注意,不将HTTP错误代码设置为500
的错误
(例如未经授权的交认)
将不会由HanderError滤波器处理.
HTTP错误代码到500的解决方案
这是一个名为[错误]的属性将其放在一个动作上
public class Error: System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(System.Web.Mvc.ExceptionContext filterContext)
{
if (filterContext.HttpContext.IsCustomErrorEnabled)
{
filterContext.ExceptionHandled = true;
}
base.OnException(filterContext);
//OVERRIDE THE 500 ERROR
filterContext.HttpContext.Response.StatusCode = 200;
}
private static void RaiseErrorSignal(Exception e)
{
var context = HttpContext.Current;
// using.Elmah.ErrorSignal.FromContext(context).Raise(e, context);
}
}
//示例:
[Error]
[HandleError]
[PopulateSiteMap(SiteMapName="Mifel1", ViewDataKey="Mifel1")]
public class ApplicationController : Controller
{
}
以上所述是小编给大家介绍的ASP.NET MVC HandleError,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/34230.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态