【问题标题】:Return view inside partial to full view on error将部分视图返回到错误的完整视图
【发布时间】:2014-12-17 04:15:09
【问题描述】:

我有一个向导可以加载每个步骤的部分视图。当表单生成错误时,它会加载错误页面。然而,它在局部视图中加载了完整的错误页面,并使它看起来像一次加载两个页面。如何重定向到局部视图之外的错误页面?

我在台阶底部有这个

            try
            {
                return PartialView("AccountSelection", vm);
            }
            catch (Exception ex)
            {
                return View("Error");
            }
        }
        return PartialView();

【问题讨论】:

标签: c# asp.net-mvc error-handling


【解决方案1】:

就我个人而言,我会处理更高级别的错误。您可以在 web.config 文件中指定错误页面。

<configuration>
   <system.web>
      <customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
      </customErrors>
   </system.web>
</configuration>

如果目标只是让页面的一部分显示错误消息,那么您可以创建一个名为“错误”的部分页面并将其保存在 Views/Shared 中。然后将您的代码更改为...

        try
        {
            return PartialView("AccountSelection", vm);
        }
        catch (Exception ex)
        {
            return PartialView("Error");
        }
    }
    return PartialView();

【讨论】:

  • 我确实在我的 web.config 中配置了它,但由于某种原因,错误在部分视图中生成。它不会重定向到其他页面。这是一个空错误。
  • 看你怎么称呼它。调用此控制器方法的代码行是什么?
【解决方案2】:

使用RedirectToAction("ErrorAction","ErroController")。根据您的需要,该操作可能在单独的控制器中或在同一个控制器中(我认为这不正确)。您还需要自定义错误操作方法和视图,以便您可以针对不同情况传递不同的消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多