0

我通过 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>

为什么我会收到上述错误?

4

7 回答 7

3

如果Request("code")为空,调用.ToString()它会给你一个空引用异常。

于 2012-04-11T16:40:34.630 回答
1

检查是否Request("code")为空。如果为null,则调用时会出现对象引用错误ToString()

于 2012-04-11T16:41:40.103 回答
1

我认为这必须处理您试图获取页面上图像的查询字符串值的事实。Request()只会获取“请求页面”的查询字符串,这是您所在的页面,而不是图像本身。因此,如果您希望它从图像源中提取,您的代码将始终为空

于 2012-04-11T17:01:46.063 回答
0

您可以简单地删除 ToString(),因为 Request(item key) 返回 String:

Dim Code As String = Request("code")
于 2012-04-11T17:04:16.667 回答
0

检查查询字符串值是否存在:

Dim Code as String = String.Empty
If Not Request.QueryString("code") Is Nothing Then
    Code = Request.QueryString("code")
End If
于 2012-04-11T17:11:41.913 回答
0

您还可以使用 string.isnullorempty() 函数来测试 request.querystring 值的内容

于 2012-04-11T19:54:38.623 回答
0

您需要实际提交表单 (POST) 或传递 URL 中的参数 (GET) 以通过 Request 对象获取请求参数。(许多)两种简单的方法可以做到这一点:

选项 1. 只保留你的barcodes.aspxand barcodes.aspx.vb。投入barcodes.aspx

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

将其放入 Page_Load(适用于barcodes.aspx.vbGET 或 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>
于 2012-04-11T21:14:39.513 回答