我试图从请求页面的查询字符串中获取参数“id”,如此
If Request.QueryString IsNot Nothing AndAlso _
Request.QueryString.GetKey("id") IsNot Nothing Then
DeleteVehicle(Request.QueryString.GetKey("id"))
End If
但我收到此错误
System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 16: If Request.QueryString IsNot Nothing AndAlso _
Line 17: Request.QueryString.GetKey("id") IsNot Nothing Then
Source File: G:\projects_backup\Toaab\Toaa\admin\vehicle\view.aspx.vb Line: 16
请你帮帮我
修改
我在page_load事件中调用它
通过超链接
调用同一页面(具有自动生成的链接)我也将代码更改为
If Request.QueryString("id") IsNot Nothing OrElse Request.QueryString("id") IsNot String.Empty Then
DeleteVehicle(Request.QueryString("id").ToString)
End If
答案 0 :(得分:4)
要查看QueryString中是否存在值,请检查该值是否等于空字符串而不是null:
请改为尝试:
If String.IsNullOrEmpty(Request.QueryString("id")) = False Then
DeleteVehicle(Request.QueryString("id"))
End If
答案 1 :(得分:1)
C#/VB.Net
中没有过载,它在GetKey
函数中提供字符串参数。Page Life Cycle
的所有事件,Request.QueryString
值永远不会为空(此外,它包含一些非空值)。If Request.QueryString("id") IsNot Nothing
AndAlso String.IsNullOrEmpty(Request.QueryString("id")) = False Then
DeleteVehicle(Request.QueryString("id").ToString)
End If
答案 2 :(得分:0)
我建议使用Params集合。这将对Querystring以及基于Form的参数都非常有用。您可以像这样对“ id”进行简单的测试。
Request.Params.AllKeys.Contains("id")