C# 在Asp MVC中显示静态数据类的自定义错误
大家好,在我的mvc项目中,我有一个静态类,我在其中加载静态数据,然后在控制器中使用它C# 在Asp MVC中显示静态数据类的自定义错误,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,大家好,在我的mvc项目中,我有一个静态类,我在其中加载静态数据,然后在控制器中使用它 public class StaticData { public static List<ITEM_TYPES> _itemTypes ; public static void LoadData() { try { using (pfservicereference.Service1Client ctx = n
public class StaticData
{
public static List<ITEM_TYPES> _itemTypes ;
public static void LoadData()
{
try
{
using (pfservicereference.Service1Client ctx = new Service1Client())
{
_itemTypes = ctx.GetItemTypes();
}
}
catch (Exception ex)
{
throw new HttpException(500,ex.Message);
}
}
}
但是如果我在这里有HttpException,如何重定向到自定义错误页面呢
我已将customErrors mode=设置为On,但没有帮助。是否有任何重定向方法?您可以使用以下方法重定向到自定义错误页面 方法1: 您可以使用try-catch-block-insideaction方法并重定向到自定义错误页面
public ActionResult Index()
{
try
{
//Code logic here
}
catch (HttpException ex)
{
if (ex.ErrorCode == 500)
return RedirectToAction("error", "error");
}
return View();
}
方法2:
您可以根据可以重定向到自定义错误页面的错误代码,使用异常过滤器在应用程序级别捕获错误
对于这种方法,您可以在global.asax或controller级别中创建单独的异常筛选器类和映射的应用程序级别
protected override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception is HttpException)
{
HttpException exception = filterContext.Exception as HttpException;
if (exception.ErrorCode == 600)
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary
{
{ "action", "Error" },
{ "controller", "Error" }
});
filterContext.ExceptionHandled = true;
}
}
您将在控制器中捕获一个异常,这就是执行重定向的地方。执行重定向不是这个静态类的工作。我还将使用静态构造函数而不是LoadData方法请参见