ASP.NET MVCアクションでリファラーURLを取得するにはどうすればよいですか?アクションを呼び出す前に、ページにリダイレクトしようとしています。
回答:
辞書に直接Request.UrlReferrer
アクセスしたくない場合は、を使用して参照URLを取得することもできますRequest.ServerVariables
。
Request.UrlReferrer
は実際にはURIですが、そこからリファラーURLに関して必要なすべてを取得できます。(URIとURLの詳細:stackoverflow.com/questions/176264/…)。
あなたはこれを使うことができます
filterContext.RequestContext.HttpContext.Request.UrlReferrer.AbsolutePath
リファラー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(hh => hh.Referrer);
var referrer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri;
return new MvcHtmlString(str.ToHtmlString().Replace("value=\"\"", String.Format("value=\"{0}\"", referrer)));
}
..。
@Html.HiddenForReferrer()