处理错误的最佳方法是什么,例如
在ASP.NET中从客户端“
检测到潜在危险的Request.Form值
?
我想继续进行验证,因为我的表单没有正当理由允许HTML字符。但是,我不太确定如何以更友好的方式处理此错误。我尝试在Page_Error
中处理它,但据我所知,这发生在较低级别的部分,因此Page_Error
函数永远不会触发。
因此,我可能不得不在我的Application_Error
文件中使用Global.asax
。如果这是处理该错误的唯一方法,有没有办法专门处理这个错误?我不想以同样的方式处理所有应用程序错误。
由于
答案 0 :(得分:22)
您有两种选择:
// Editing your global.asax.cs
public class Global : System.Web.HttpApplication
{
protected void Application_Error(object sender, EventArgs e)
{
Exception lastError = Server.GetLastError();
if (lastError is HttpRequestValidationException)
{
Response.Redirect("~/RequestValidationError.aspx");
}
}
}
或者
// Editing your CUser.aspx.cs
public partial class CUser : System.Web.UI.Page
{
protected override void OnError(EventArgs e)
{
Response.Redirect("~/RequestValidationError.aspx");
Context.ClearError();
}
}
答案 1 :(得分:3)
您不想在Global.asax上添加不必要的行李。如果您对这是由虚假数据输入引起的感到满意,那么无论它来自何处,都要处理输入:
http://codersbarn.com/post/2008/11/01/ASPNET-Data-Input-Validation.aspx
专注于错误原因: - )
答案 2 :(得分:1)
您可以在Application_Error中使用Server.GetLastError()
来获取抛出的异常,检查异常,并根据需要进行响应(重定向到页面等)