【发布时间】:2010-12-01 01:37:47
【问题描述】:
如何在 ASP.NET MVC 操作中获取引荐来源网址?我正在尝试在您调用操作之前重定向回页面。
【问题讨论】:
-
请记住,并非所有用户代理(AKA 浏览器)都会发送引荐来源网址信息,有些甚至可能伪造。
标签: asp.net-mvc redirect referrer
如何在 ASP.NET MVC 操作中获取引荐来源网址?我正在尝试在您调用操作之前重定向回页面。
【问题讨论】:
标签: asp.net-mvc redirect referrer
如果您不喜欢直接访问Request.ServerVariables 字典,也可以使用Request.UrlReferrer 来获取引用URL。
【讨论】:
Request.UrlReferrer 实际上是 URI,但您可以从那里获得有关引荐来源网址的所有信息。 (有关 URI 与 URL 的更多信息:stackoverflow.com/questions/176264/…)。
Request.ServerVariables["http_referer"]
应该这样做。
【讨论】:
你可以用这个
filterContext.RequestContext.HttpContext.Request.UrlReferrer.AbsolutePath
【讨论】:
你可以将referrer 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()
【讨论】: