Asp.net mvc 使用querystring重定向

Asp.net mvc 使用querystring重定向,asp.net-mvc,Asp.net Mvc,在某种情况下,如果提供了Returnurl,控制器中的ActionResult方法需要执行重定向 但是,如何在其上附加querystring并仍然使用: 返回重定向(url) 每次我这样做,我总是得到一个安全异常,即请求有一个潜在的危险值(符号或问号)。忘记了-我使用了Url.Content,现在它工作正常 return Redirect(Url.Content(model.ReturnUrl+otherPotentialQueryStringHere)尝试此操作,根据需要填写操作和控制器的名称

在某种情况下,如果提供了Returnurl,控制器中的ActionResult方法需要执行重定向

但是,如何在其上附加querystring并仍然使用:

返回重定向(url)


每次我这样做,我总是得到一个安全异常,即请求有一个潜在的危险值(符号或问号)。

忘记了-我使用了Url.Content,现在它工作正常


return Redirect(Url.Content(model.ReturnUrl+otherPotentialQueryStringHere)

尝试此操作,根据需要填写操作和控制器的名称:

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);

这是行不通的,因为这不是一个重定向操作-只是一个纯MVC重定向。您是否尝试重定向到非MVC url?不完全正确。虽然它位于MVC站点内,但根据传递到页面中的返回url,将有一个重定向到不同区域。这是在操作“完成”后我要重定向到的url。请看我在这条评论下面的回答(明天回答)-我使用了Url.Content和returnUrl以及我想传递的查询字符串。