Response.Redirect не отправляет строку - PullRequest
0 голосов
/ 03 сентября 2018

У меня возникла небольшая проблема при попытке настроить страницу с общей ошибкой в ​​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". Что я здесь не так делаю?

1 Ответ

0 голосов
/ 03 сентября 2018

Вам нужно экранировать все параметры (UrlEncode). На данный момент он не имеет выхода и содержит целую кучу новых строк.

Прежде чем сделать это, я предлагаю вам просто добавить параметр "hello world" и заново отобразить его, чтобы убедиться, что ваша страница перенаправления работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...