未指定ASP.Net MVC4 HandleError呈现视图

MB34

我有一个控制器Action,其视图与我的应用程序的其余部分截然不同,并且我希望该Action抛出的任何异常都显示与我的应用程序的其余部分不同的错误页面。

我已经修改了HandleError属性,但是当发生异常时,它根本不加载错误页面。

    [HttpPost]
    [HandleError(View = "UPI_Error")]
    public ActionResult ParticipantUpdate1(Participant part)
    {
        try
        {
            mps.ParticipantUpdate(LogonTicket, ParticipantID, part);
        }
        catch(Exception ex)
        {
            string x = ex.Message;
        }
        return View();
    }

有任何想法吗?

更新

OK,修改为:

[HttpPost]
[HandleError(View = "UPI_Error", ExceptionType = typeof(ArgumentException))]
public ActionResult ParticipantUpdateSuccess(Participant part)
{
    // Copy the new stuff into the original ParticipantInfo before updating essentially "merging"
    Participant OrigPart = CopyParticipant(part);
    try
    {
        string result = mps.ParticipantUpdate(LogonTicket, ParticipantID, OrigPart);
        if (result != "Update Success")
        {
            throw new ArgumentException(result);
        }
    }
    catch (Exception e)
    {
        throw new ArgumentException(e.Message);
    }
    return View();
}

但是,它仍然不会加载UPI_Error页面。ParticipantUpdate调用引发此异常:

System.ServiceModel.FaultException`1 was unhandled by user code
  HResult=-2146233087
  Message=ORA-12899: value too large for column "CLI"."CLI_MAIN_ZIP" (actual: 21, maximum: 11)

在此链接的文章中:http : //www.c-sharpcorner.com/UploadFile/ff2f08/exception-or-error-handling-in-Asp-Net-mvc-using-handleerror/

它说HandleError不能捕获控制器外部引发的异常。由于异常发生在我的Web服务中并传播到我的应用程序中,这可能是问题的一部分吗?

但是,当我从Web服务中捕获一个异常时,我抛出了一个新异常,它仍然显示YSOD与我的自定义错误页面。

更新

好吧,我决定走另一条路。我捕获到异常,将异常对象复制到TempData,然后调用我的自定义视图。但是,由于某种原因,我无法更改视图中的布局。它带有空引用异常。还有其他想法吗?

[HttpPost]
[HandleError(View = "UPI_Error")]
public ActionResult ParticipantUpdateSuccess(Participant part)
{
    bool error = false;
    // Copy the new stuff into the original ParticipantInfo before updating essentially "merging"
    Participant OrigPart = CopyParticipant(part);
    try
    {
        string result = mps.ParticipantUpdate(LogonTicket, ParticipantID, OrigPart);
        if (result != "Update Success")
        {
            throw new ArgumentException(result);
        }
    }
    catch (Exception ex)
    {
        error = true; //  throw new ArgumentException(e.Message);
        TempData["exception"] =  ex;
    }
    if (!error)
    {
        return View();
    }
    else
    {
        return RedirectToAction("UPIError"); 
    }
}

public ActionResult UPIError()
{
    ViewBag.Exception = TempData["exception"];
    return View();
}

抛出异常:

Message =对象引用未设置为对象的实例。StackTrace:位于... \ Views \ Home \ UPIError.cshtml:第4行中的ASP._Page_Views_Home_UPIError_cshtml.Execute()

这是我的视图中的第4行(是的,该视图存在于“共享”文件夹中):

Layout = "~/Views/Shared/_UPILayout.cshtml";

出现了View命名问题,但解决了。现在,我仍然收到Null Reference异常,但是视图在那里并正确命名。

bviale

在错误处理程序中,您指定要对类型的异常使用自定义错误视图ArgumentException,而当前引发的异常是System.ServiceModel.FaultException您是否尝试过捕获更高的Exception类,例如:

[HandleError(View = "UPI_Error", ExceptionType = typeof(Exception))]

或者更具体地测试您的情况:

[HandleError(View = "UPI_Error", ExceptionType = typeof(System.ServiceModel.FaultException))]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ASP.NET MVC4 Api控制器中将视图呈现为字符串

来自分类Dev

ASP.NET MVC - 在 MVC4 Razor 视图中使用 RadioButtonFor

来自分类Dev

Crystalreportviewer无法呈现(asp.net MVC4剃刀语法)

来自分类Dev

ASP.NET MVC4 ActionFilters

来自分类Dev

路由ASP.NET MVC4

来自分类Dev

包括特定于ASP.NET MVC4视图或部分视图的脚本

来自分类Dev

在asp.net MVC4中使用父视图删除部分视图信息

来自分类Dev

在ASP.NET MVC4的视图中未显示部分视图

来自分类Dev

包括特定于ASP.NET MVC4视图或部分视图的脚本

来自分类Dev

Asp.net mvc4在布局中具有模型的局部视图

来自分类Dev

ASP.NET MVC4:在同一视图中过滤搜索结果

来自分类Dev

如何将模型从视图传递到ASP.NET MVC4中的javascript

来自分类Dev

添加评论后的ASP.NET MVC4刷新视图

来自分类Dev

显示列表从控制器返回到视图ASP.NET MVC4中的表

来自分类Dev

ASP.NET MVC4:在同一视图中过滤搜索结果

来自分类Dev

保护ASP.NET MVC4中的视图:表单身份验证

来自分类Dev

如何替换ASP.Net的MVC4视图以构建div而不是表

来自分类Dev

呈现视图时,ASP.NET MVC 4速度很慢

来自分类Dev

ASP.NET MVC视图模型呈现

来自分类Dev

ASP.NET MVC视图模型呈现

来自分类Dev

Highcharts无法在我的MVC4 .NET项目中呈现

来自分类Dev

在另一个视图中将视图显示为图像ASP.NET MVC4

来自分类Dev

C#ASP.net MVC4如何从部分视图ActionResult获取主视图控件值

来自分类Dev

如何将ASP.Net MVC4 Web API与AngularJS部分视图结合使用(aka ng-include)

来自分类Dev

在asp.net MVC4的布局视图中的页脚中全局设置应用程序版本

来自分类Dev

当数据到达队列Asp.net Mvc4时,轮询天蓝色队列并更新视图

来自分类Dev

如何在ASP.NET MVC4剃刀视图中可视化动态类型列

来自分类Dev

从Asp.net MVC4控制器调用不同文件夹的视图

来自分类Dev

轮询天蓝色队列,并在数据到达队列Asp.net Mvc4时更新视图

Related 相关文章

  1. 1

    如何在ASP.NET MVC4 Api控制器中将视图呈现为字符串

  2. 2

    ASP.NET MVC - 在 MVC4 Razor 视图中使用 RadioButtonFor

  3. 3

    Crystalreportviewer无法呈现(asp.net MVC4剃刀语法)

  4. 4

    ASP.NET MVC4 ActionFilters

  5. 5

    路由ASP.NET MVC4

  6. 6

    包括特定于ASP.NET MVC4视图或部分视图的脚本

  7. 7

    在asp.net MVC4中使用父视图删除部分视图信息

  8. 8

    在ASP.NET MVC4的视图中未显示部分视图

  9. 9

    包括特定于ASP.NET MVC4视图或部分视图的脚本

  10. 10

    Asp.net mvc4在布局中具有模型的局部视图

  11. 11

    ASP.NET MVC4:在同一视图中过滤搜索结果

  12. 12

    如何将模型从视图传递到ASP.NET MVC4中的javascript

  13. 13

    添加评论后的ASP.NET MVC4刷新视图

  14. 14

    显示列表从控制器返回到视图ASP.NET MVC4中的表

  15. 15

    ASP.NET MVC4:在同一视图中过滤搜索结果

  16. 16

    保护ASP.NET MVC4中的视图:表单身份验证

  17. 17

    如何替换ASP.Net的MVC4视图以构建div而不是表

  18. 18

    呈现视图时,ASP.NET MVC 4速度很慢

  19. 19

    ASP.NET MVC视图模型呈现

  20. 20

    ASP.NET MVC视图模型呈现

  21. 21

    Highcharts无法在我的MVC4 .NET项目中呈现

  22. 22

    在另一个视图中将视图显示为图像ASP.NET MVC4

  23. 23

    C#ASP.net MVC4如何从部分视图ActionResult获取主视图控件值

  24. 24

    如何将ASP.Net MVC4 Web API与AngularJS部分视图结合使用(aka ng-include)

  25. 25

    在asp.net MVC4的布局视图中的页脚中全局设置应用程序版本

  26. 26

    当数据到达队列Asp.net Mvc4时,轮询天蓝色队列并更新视图

  27. 27

    如何在ASP.NET MVC4剃刀视图中可视化动态类型列

  28. 28

    从Asp.net MVC4控制器调用不同文件夹的视图

  29. 29

    轮询天蓝色队列,并在数据到达队列Asp.net Mvc4时更新视图

热门标签

归档