2013-09-13 4 views
1

У меня есть определенная ситуация, когда метод ActionResult в контроллере должен выполнять перенаправление, если предоставляется Returnurl.Перенаправление с querystring

Однако, как я могу добавить строку запроса в том, что и до сих пор используют:

возвращение Redirect (URL)?

каждый раз, когда я это делаю, я всегда получаю исключение безопасности, которое имеет потенциально опасное значение (амперсанд или даже знак вопроса).

ответ

0

забыл - я использовал Url.Content, и теперь он работает отлично.

возвращение Redirect (Url.Content (model.ReturnUrl + otherPotentialQueryStringHere)

2

Попробуйте это, заполнив имя действия и контроллером в зависимости от обстоятельств:

System.Web.Routing.RouteValueDictionary rvd = new System.Web.Routing.RouteValueDictionary(); 
foreach(string key in HttpContext.Request.QueryString.AllKeys) 
{ 
    rvd.Add(key, HttpContext.Request.QueryString[key]); 
} 

return RedirectToAction("MyAction", "MyController", rvd); 
+0

Это не будет работать, потому что этого Wouldn 't быть RedirectToAction - просто чистый MVC-переадресация –

+0

Вы пытаетесь перенаправить на URL-адрес не-mvc? –

+0

не совсем. Пока он находится на сайте MVC, будет перенаправление на разные области в зависимости от возвращаемого url, переданного в страница. Это URL, который я хочу перенаправить после того, как действие «завершено». См. мой ответ ниже этот комментарий (ответ будет сделан завтра). Я использовал Url.Content вместе с returnUrl, а также запрос, который я хотел передать вместе с ним. –

Смежные вопросы