使用ASP.Net MVC,我发布了一个动作(然后我将数据库地址添加到数据库表等)。
我需要重新定向到引荐来源网址,但还需要在引荐来源网址的查询字符串中添加内容。可以从许多地方调用此操作,因此我无法重定向到当前控制器中的操作。
如何重定向到引荐来源并向查询字符串添加内容(请注意引荐来源可能已经包含我需要保留的查询字符串值)。
[HttpPost]
public ActionResult MyAction(MyModel model)
{
//Do stuff.
return new RedirectResult(Request.UrlReferrer.ToString()); // + query string value?
}
谢谢!
答案 0 :(得分:10)
使用UriBuilder和HttpUtility.ParseQueryString:
[HttpPost]
public ActionResult MyAction(MyModel model)
{
//Do stuff.
UriBuilder uriBuilder = new UriBuilder(Request.UrlReferrer);
NameValueCollection query = HttpUtility.ParseQueryString(uriBuilder.Query);
query.Add("myparam", "something");
uriBuilder.Query = query.ToString();
return new RedirectResult(uriBuilder.Uri);
}
答案 1 :(得分:0)
试试这个
string url = Request.UrlReferrer.ToString();
if(url.Contains("?"))
url += "&newparam=something";
else
url += "?newparam=something";
return new RedirectResult(url);