【问题标题】:Catch HttpRequestValidationException MVC [duplicate]捕获 HttpRequestValidationException MVC [重复]
【发布时间】:2016-09-13 23:28:24
【问题描述】:

我正在使用下面的代码来捕获 HttpRequestValidationException。 但问题是它导航到不同的页面。

我想在用户输入信息并单击提交按钮的同一页面上显示“无效输入”错误消息。

protected void Application_Error(object sender, EventArgs e)
{
    var context = HttpContext.Current;
    var exception = context.Server.GetLastError();
    if (exception is HttpRequestValidationException)
    {            
        Response.Clear();
        Response.StatusCode = 200;
        Response.Write(@"<html><head></head><body>Invalid Input</body></html>");
        Response.End();
        return;
    }
}

【问题讨论】:

  • 你在使用 ASP.NET MVC 吗?

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


【解决方案1】:

您可以使用 try/catch 块:

protected void Application_Error()
{
    var context = HttpContext.Current;
    var exception = context.Server.GetLastError();

    try
    {
        //Operations you need to perform
    }
    catch (HttpRequestValidationException)
    {
      //Output Error
    }
}

【讨论】:

  • HttpApplication 上没有对象 ModelState。这种代码模式根本没有意义。
  • @ErikPhilips 犯了一个错误。当我添加 ModelState 错误时没有考虑。
猜你喜欢
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-16
相关资源
最近更新 更多