C# 修复C中的System.NullReferenceException#

C# 修复C中的System.NullReferenceException#,c#,asp.net,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"); } } 当

我正在开发一个网站,一直使用System.NullReferenceException。 在母版页上,我正在使用此代码

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

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

只需调用
ToString()

当前您正试图对空引用调用
ToString

如果ModuleID存在但为空,则不会重定向。您可能需要:

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

只需调用
ToString()

当前您正试图对空引用调用
ToString

如果ModuleID存在但为空,则不会重定向。您可能需要:

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

您必须检查Request.Params[“ModuleID”]是否为null。null没有.ToString(),这就是为什么会出现此异常。 如果使用以下代码,则不应获得NullReferenceException

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

您必须检查Request.Params[“ModuleID”]是否为null。null没有.ToString(),这就是为什么会出现此异常。 如果使用以下代码,则不应获得NullReferenceException

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

你已经说过错误在哪里了。当ModuleID为空(即不存在)时,Params[“ModuleID”]返回null。您已经说过错误在哪里。当ModuleID为空(即不存在)时,Params[“ModuleID”]返回null。