重定向到引荐来源网址但是向查询字符串添加内容

时间:2012-09-25 11:21:00

标签: c# .net asp.net-mvc-3

使用ASP.Net MVC,我发布了一个动作(然后我将数据库地址添加到数据库表等)。

我需要重新定向到引荐来源网址,但还需要在引荐来源网址的查询字符串中添加内容。可以从许多地方调用此操作,因此我无法重定向到当前控制器中的操作。

如何重定向到引荐来源并向查询字符串添加内容(请注意引荐来源可能已经包含我需要保留的查询字符串值)。

[HttpPost]
public ActionResult MyAction(MyModel model)
{
    //Do stuff.

    return new RedirectResult(Request.UrlReferrer.ToString()); // + query string value?
}

谢谢!

2 个答案:

答案 0 :(得分:10)

使用UriBuilderHttpUtility.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);