尝试在MVC中设置常规错误页面时遇到了一些问题。
我正在使用以下代码->
处理Global.asax.cs中的所有应用程序错误protected void Application_Error(object sender, EventArgs e)
{
//if (Request.Url.ToString().StartsWith("http://localhost:"))
// return;
string msg;
Exception ex = Server.GetLastError().GetBaseException();
StringBuilder sb = new StringBuilder();
sb.AppendLine("Exception Found");
sb.AppendLine("Timestamp: " + System.DateTime.Now.ToString());
sb.AppendLine("Error in: " + Request.Url.ToString());
sb.AppendLine("Browser Version: " + Request.UserAgent.ToString());
sb.AppendLine("User IP: " + Request.UserHostAddress.ToString());
sb.AppendLine("Error Message: " + ex.Message);
sb.AppendLine("Stack Trace: " + ex.StackTrace);
msg = sb.ToString();
Server.ClearError();
Response.Redirect(string.Format("~/Error/Error?w={0}", msg ));
}
我的问题是我没有重定向。创建错误时,我看到相同的页面URL和空白页面。
如果我删除“ errorMsg”并添加了一个简单的字符串,则可以正常工作,并使用所需的参数进行重定向。例如:
string test = "testme";
Response.Redirect(string.Format("~/Error/Error?w={0}", test));
那确实使我使用参数“ testme”重定向到错误页面。我在这里做什么错了?
答案 0 :(得分:3)
您需要转义所有参数(UrlEncode)。目前,它是未转义的,并且也有很多新行。
在执行此操作之前,建议您仅附加“ hello world”参数,然后重新显示该参数,以确保重定向页面正常工作