6

ASP.Net MVCを使用して、アクションに投稿します(DBテーブルなどに電子メールアドレスを追加します)。

リファラーURLにリダイレクトする必要がありますが、リファラーURLのクエリ文字列に何かを追加する必要もあります。このアクションはさまざまな場所から呼び出すことができるため、現在のコントローラーのアクションにリダイレクトできません。

リファラーにリダイレクトしてクエリ文字列に何かを追加するにはどうすればよいですか(リファラーには、保持する必要のあるクエリ文字列値が既に含まれている可能性があることに注意してください)。

[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 に答える