【问题标题】:MVC3 CustomError 500 Issue When Entering HTML Tags In TextFields在文本字段中输入 HTML 标记时出现 MVC3 自定义错误 500 问题
【发布时间】:2012-01-03 10:28:35
【问题描述】:

我在我的 MVC3 Web 应用程序中实现了一个默认的自定义错误页面,它似乎大部分都在工作。我可以输入错误的 URL,并且我的浏览器被重定向到默认错误页面,没有任何问题。但是,当我将 HTML 标记添加到 <br> 等文本字段中时,我遇到了问题。这导致 500 错误(内部服务器错误)未重定向到我的默认错误页面。

在我的 web.config 中,我有以下标签。

<customErrors defaultRedirect="/CustomErrors/DefaultError" mode="On">
</customErrors>

我有一个名为 CustomErrors 的控制器和一个名为 DefaultError.cshtml 的视图。

public class CustomErrorsController : Controller
{        
    public ActionResult DefaultError()
    {
        return View();
    }
}

当我输入错误的 URL 时,我在 CustomErrorsController 的 DefaultError 操作方法中输入了一个断点。但是,当我在登录页面等文本字段中输入&lt;br&gt; 时,我看到了不稳定的行为。 IE 或 Mozilla 显示默认浏览器错误页面。奇怪的是,当我从我的 web.config 中删除 customerror 属性时,我得到了一个丑陋的页面,除了被转储在它上面。所以我的自定义错误以某种方式被引用但没有完全实现。

关于处理自定义错误和在文本字段中输入 html 标签有什么想法吗?

【问题讨论】:

  • 您可以在on_exception 方法中定义一个自定义操作过滤器,该过滤器将显示您的错误页面。
  • 我假设 on_exception 需要进入我的 CustomErrorsController。我会试一试,让你知道我的结果。谢谢

标签: asp.net-mvc-3


【解决方案1】:

感谢阿德里亚诺为我指明了正确的方向。我找到了这个例子(http://stackoverflow.com/questions/6324368/asp-net-mvc-override-oneexception-in-base-controller-keeps-propogating-to-applica)并最终在我的基地实现了 OnException控制器,因为我的 CustomErrorsController 中不会发生异常。

    protected override void OnException(ExceptionContext filterContext)
    {
        filterContext.Result = new ViewResult
        {
            ViewName = "/CustomErrors/DefaultError"
        };

        filterContext.ExceptionHandled = true;
    }

【讨论】:

    猜你喜欢
    • 2018-09-08
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多