以下代码放在page_Load中。当你第一次直接输入页面并且没有推荐人时,我应该如何处理这个以绕过UrlReferrer? 我在这里缺少什么?
if (HttpContext.Current.Request.UrlReferrer.AbsoluteUri != null)
{
urlReferer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri.ToString();
}
else
{
urlReferer = "";
}
答案 0 :(得分:5)
只需检查UrlReferrer
是否为空:
if (HttpContext.Current.Request.UrlReferrer != null
&& HttpContext.Current.Request.UrlReferrer.AbsoluteUri != null)
{
urlReferer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri.ToString();
}
else
{
urlReferer = "";
}
答案 1 :(得分:3)
谁说客户端在HTTP请求中通过引荐来源传递?
首先检查UrlReferrer
是否为null
if (HttpContext.Current.Request.UrlReferrer != null)
{
urlReferer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri.ToString();
}
else
{
urlReferer = "";
}
答案 2 :(得分:2)
我相信您需要检查HttpContext.Current.Request.UrlReferrer != null
。
答案 3 :(得分:2)
为什么不这样做比检查空值更清洁
private void Page_Load()
{
if (!IsPostBack)
{
if (HttpContext.Current.Request.UrlReferrer != null)
{
urlReferer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri.ToString();
}
else
{
urlReferer = "";
}
}
}
答案 4 :(得分:0)
如果UrlReferrer为null,则对AbsolutUri的测试将失败。
首先尝试将UrlReferrer测试为null,这可能会解决问题。
答案 5 :(得分:0)
使用调试器。如果你在visual studio中运行它,那么在抛出异常时你可能会被带到调试器窗口。调试器底部有多个选项卡,包括“Locals”和“Watch”,您可以使用这些选项卡查看存储的变量。
如果上面的代码确实是导致问题的原因而不是
HttpContext.Current.Request.UrlReferrer.AbsoluteUri
或
HttpContext.Current.Request.UrlReferrer
或
HttpContext.Current.Request
或
HttpContext.Current
或
HttpContext
设置为null