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()