NullRefrenceException未被用户代码处理

时间:2012-07-11 14:17:50

标签: c# asp.net

以下代码放在page_Load中。当你第一次直接输入页面并且没有推荐人时,我应该如何处理这个以绕过UrlReferrer? 我在这里缺少什么?

    if (HttpContext.Current.Request.UrlReferrer.AbsoluteUri != null)
    {
        urlReferer = HttpContext.Current.Request.UrlReferrer.AbsoluteUri.ToString();
    }
    else
    {
        urlReferer = "";
    }

6 个答案:

答案 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