修复C#中的System.NullReferenceException

时间:2011-04-08 07:02:33

标签: c# asp.net

我开发了一个网站,并坚持使用System.NullReferenceException。 在主页面上我使用此代码

if (Request.Url.ToString().ToLower().Contains("content.aspx"))
{
    if (Request.Params["ModuleID"].ToString() == null)
    {
        Response.Redirect("Content.aspx?ModuleID=1");
    }
}

当Module Id为空时,它会创建空引用异常。

2 个答案:

答案 0 :(得分:7)

只需取出ToString()的电话:

if (Request.Params["ModuleID"] == null)
{
    Response.Redirect("Content.aspx?ModuleID=1");
}

目前,您正尝试在空引用上调用ToString

如果ModuleID存在但不会重定向,但不会重定向。你可能想要:

if (string.IsNullOrEmpty(Request.Params["ModuleID"]))
{
    Response.Redirect("Content.aspx?ModuleID=1");
}

答案 1 :(得分:2)

您必须在null上检查Request.Params [“ModuleID”]。 null没有.ToString(),这就是你得到这个异常的原因。 如果您使用以下代码,则不应得到NullReferenceException。

if (Request.Url.ToString().ToLower().Contains("content.aspx")) 
{ 
    if (Request.Params["ModuleID"] == null) 
    { 
        Response.Redirect("Content.aspx?ModuleID=1"); 
    } 
}