gpt4 book ai didi

c# - 重定向 URI 不能包含换行符。(查询字符串)

转载 作者:太空狗 更新时间:2023-10-30 00:53:01 26 4
gpt4 key购买 nike

当运行下面的代码时,我得到了这个错误Redirect URI cannot contain new-line characters.。我正在使用 MVC 4。她的是我的工作代码。

 protected void Application_Error(Object sender, System.EventArgs e)
{
System.Web.HttpContext context = HttpContext.Current;
System.Exception exception = Context.Server.GetLastError();
var stackTraceExcep = new StackTrace(exception, true); // create the stack trace
var stackTrace = stackTraceExcep.GetFrames() // get the frames
.Select(frame => new
{ // get the info
FileName = frame.GetFileName(),
LineNumber = frame.GetFileLineNumber(),
ColumnNumber = frame.GetFileColumnNumber(),
Method = frame.GetMethod(),
Class = frame.GetMethod().DeclaringType,
}).FirstOrDefault();


string FileName = stackTrace.FileName;
string LineNumber = stackTrace.LineNumber;
string ColumnNumber = stackTrace.ColumnNumber;
string MethodName = stackTrace.Method.Name;
string ClassName = stackTrace.Class.Name;
if (!string.IsNullOrEmpty(exception.Message))
{
Response.Redirect(String.Format("~/Error/{0}/?errorMessage={1},FileName={2},LineNumber={3},ColumnNumber={4},MethodName={5},ClassName={6}", "App_Error", exception.Message, FileName, LineNumber, ColumnNumber, MethodName, ClassName));//I got this error in this line
}
context.Server.ClearError();
}

什么问题?我们如何解决这个问题?我已经搜索并尝试了谷歌并获得了一些堆栈溢出的答案。但什么都帮不了我。

现在我该怎么办?

我的 Controller Action 方法

[HttpGet]
public ActionResult App_Error(string errorMessage, string fileName, string lineNumber, string columnNumber, string methodName, string className)
{
string errorNumber = Convert.ToString(errorRepository.AddError(errorMessage, fileName, Convert.ToInt32(lineNumber), Convert.ToInt32(columnNumber), methodName, className));
ViewData["message"] = "An error has occurred in the application . The error number is : " + errorNumber;
return View();
}

最佳答案

您需要使用 HttpUtility 或 UrlHelper 对您的异常消息进行 URLEncode

HttpUtility.UrlEncode(exception.Message)

如下更改您的重定向行

Response.Redirect(String.Format("~/Error/{0}/?errorMessage={1},FileName={2},LineNumber={3},ColumnNumber={4},MethodName={5},ClassName={6}", "App_Error", HttpUtility.UrlEncode(exception.Message), FileName, LineNumber, ColumnNumber, MethodName, ClassName));

关于c# - 重定向 URI 不能包含换行符。(查询字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18380278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com