MVC 5:获取引用URL

时间:2016-01-02 21:42:28

标签: asp.net-mvc asp.net-mvc-5

MVC 5中的控制器类显然没有实现Request.UrlReferrer,因为此属性始终为null,VS表示

  

在派生类中重写时,获取有关引荐来源网址的信息......

我检查ServerVariableHeaders属性,将它们序列化为XML文件以浏览其内容,但我没有找到任何返回引用URL的密钥。

我已经知道如何通过TempDataKeeping the URL in sessionActionFilterAttribute for that手动处理此问题。我不追求任何这些。

我只是想知道默认情况下是否在MVC 5中实现了这种行为,如果是这样我可以找到它。

  

其他StackOverFlow帖子中的答案已过时

1 个答案:

答案 0 :(得分:1)

当您从另一个网页中的链接访问当前页面时,

Request.UrlReferrer将为您提供Uri对象。如果您直接访问URL(就像在Visual Studio中按F5按钮时那样),您将获得一个空值作为Request.UrlReferrer的返回值,因为我们直接转到此页。

要验证这一点,您可以执行此操作。

有2个动作方法

public ActionResult Index()
{
   var r = Request.UrlReferrer;
   return View();
}
public ActionResult About()
{ 
   return View();
}

现在在about视图(~/Views/Home/About.cshtml)中,添加此makrup以生成指向索引操作的链接。

@Html.ActionLink("Index","Index","Home")

在Index操作中放置一个断点,以便检查r varibale值。 运行你的应用程序转到“关于”页面,单击“索引”链接,查看断点到达“索引”操作时在r变量中获得的值。