6

使用 ASP.Net MVC,我正在发布一个动作(然后我将一个电子邮件地址添加到数据库表等)

我需要重新定向回引荐来源网址,但还需要在引荐来源网址的查询字符串中添加一些内容。这个动作可以从很多地方调用,所以我不能重定向到当前控制器中的动作。

如何重定向到引用者并向查询字符串添加一些内容(请记住,引用者可能已经具有我需要保留的查询字符串值)。

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

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

谢谢!

4

2 回答 2

11

使用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);
}
于 2012-09-25T12:06:41.397 回答
0

尝试这个

string url = Request.UrlReferrer.ToString();
if(url.Contains("?"))
    url += "&newparam=something";
else
    url += "?newparam=something";        
return new RedirectResult(url);
于 2012-09-25T11:57:06.247 回答