我通过codeBehind中的请求对象传递以下内容:
获取要创建的请求代码。
Dim Code As String = Request("code").ToString()
及以下是我的标记页barcodes.aspx
:
<form id="Form1" method="post" runat="server">
<img src="barcodes.aspx?code=XXXXX" alt="barcode" />
<asp:Image id="myBarCode" runat="server"></asp:Image>
</form>
为什么我收到上述错误?
答案 0 :(得分:3)
如果Request("code")
为null,则在其上调用.ToString()
将为您提供空引用异常。
答案 1 :(得分:1)
检查Request("code")
是否为空。如果为null,则在调用ToString()
答案 2 :(得分:1)
我认为这必须处理您尝试获取页面上图像的查询字符串值这一事实。 Request()
只会获取“请求页面”的查询字符串,这是您所在的页面,而不是图像本身。因此,如果您希望从图像源中提取代码,则代码将始终为null
答案 3 :(得分:0)
您可以简单地删除ToString(),因为Request(item key)返回String:
Dim Code As String = Request("code")
答案 4 :(得分:0)
检查查询字符串值是否存在:
Dim Code as String = String.Empty
If Not Request.QueryString("code") Is Nothing Then
Code = Request.QueryString("code")
End If
答案 5 :(得分:0)
您还可以使用string.isnullorempty()函数来测试request.querystring值的内容
答案 6 :(得分:0)
您需要实际提交表单(POST)或传递URL(GET)中的参数以通过Request对象获取请求参数。两种简单的方法(很多)可以做到这一点:
选项1.仅保留barcodes.aspx
和barcodes.aspx.vb
。在barcodes.aspx
put:
<form id="Form1" method="post" runat="server">
<input type="hidden" name="code" value="XXXXX" />
<asp:Image id="myBarCode" runat="server"></asp:Image>
<asp:Button runat="server" Text="Submit"></asp:Button>
</form>
放入barcodes.aspx.vb
中的Page_Load
:
If PostBack Then
Dim code As String = Request.Form("code")
If Not String.IsNullOrEmpty(code) Then
' Generate your image here, a code has been specified
End If
End If
然后点击aspx页面上的提交按钮。
选项2.将其拆分为两个aspx页面,但与上面基本相同。
在submitme.aspx
中放入此内容(对于POST,单击按钮):
<form id="Form1" method="post" runat="server">
<input type="hidden" name="code" value="XXXXX" />
<asp:Button runat="server" Text="Submit" PostBackURL="barcodes.aspx"></asp:Button>
</form>
或者这个(对于GET,请点击链接):
<a href="barcodes.aspx?code=XXXXX">Click Me</a>
在barcodes.aspx.vb
中将其放入Page_Load(适用于GET或POST选项):
Dim code As String = Request("code")
If Not String.IsNullOrEmpty(code) Then
' Generate your image here, a code has been specified
End If
在barcodes.aspx
中,您只需要:
<asp:Image id="myBarCode" runat="server"></asp:Image>