MVC 5中的控制器类显然没有实现Request.UrlReferrer
,因为此属性始终为null,VS表示
在派生类中重写时,获取有关引荐来源网址的信息......
我检查ServerVariable
和Headers
属性,将它们序列化为XML文件以浏览其内容,但我没有找到任何返回引用URL的密钥。
我已经知道如何通过TempData
,Keeping the URL in session
,ActionFilterAttribute for that
手动处理此问题。我不追求任何这些。
我只是想知道默认情况下是否在MVC 5中实现了这种行为,如果是这样我可以找到它。
其他StackOverFlow帖子中的答案已过时
答案 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
变量中获得的值。