web-dev-qa-db-ja.com

ASP.NET MVCアクションでリファラーURLを取得するにはどうすればよいですか?

ASP.NET MVCアクションでリファラーURLを取得するにはどうすればよいですか?アクションを呼び出す前にページにリダイレクトしようとしています。

83
Ryall

Request.UrlReferrer辞書に直接アクセスしたくない場合は、Request.ServerVariablesを使用して参照URLも取得できます。

139
Derek Lawless
Request.ServerVariables["http_referer"]

すべきです。

20
Daniel Elliott

これを使用できます

filterContext.RequestContext.HttpContext.Request.UrlReferrer.AbsolutePath
7
Navish Rampal

参照URLを修正するには、viewModelに渡す必要があります。

public interface IReferrer
{
    String Referrer { get; set; }
}

...

public static MvcHtmlString HiddenForReferrer<TModel>(this HtmlHelper<TModel> htmlHelper) where TModel : IReferrer
{
    var str = htmlHelper.HiddenFor(_ => _.Referrer);
    var referrer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri;
    return new MvcHtmlString(str.ToHtmlString().Replace("value=\"\"", String.Format("value=\"{0}\"", referrer)));
}

...

@Html.HiddenForReferrer()
3
Andrey Burykin