变量未使用querystring中的值设置

时间:2017-04-17 14:27:19

标签: asp.net vb.net

我试图通过查询字符串传递GUID变量。当我运行游戏时,我可以在查询页面中看到所需的变量( planetID ):

http://ec2.us-east-2.compute.amazonaws.com/World_Generation/GeneratePlanet.aspx?planetID=3b757g83-f211-1236-a52c-226fw9a9f9d5

但是,当我尝试显示该变量时,我在浏览器控制台窗口(Chrome)中收到此错误:

  

未捕获的ReferenceError:未定义planetID

这是我的代码。您可以看到我正在声明变量' planetID'并从查询字符串值设置它:

Partial Public Class PlanetGallery
    Page.Header.DataBind()
    Public planetID As String = ""

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not String.IsNullOrEmpty(Request.QueryString("planetID")) Then planetID = Request.QueryString("planetID")

        ScriptManager.RegisterStartupScript(Page, Me.Page.GetType, "test", "alert('planetID from PlanetGallery_PageLoad Sub' + planetID);", True)
    End Sub

End Class

我不确定为什么它不起作用。我想我需要另一双眼睛。

如果有人有任何建议,我很乐意听到他们的意见!

谢谢!

1 个答案:

答案 0 :(得分:1)

由于您在浏览器控制台上收到错误,因此您应该更改以下代码:

ScriptManager.RegisterStartupScript(Page, Me.Page.GetType,
      "test", "alert('planetID from PlanetGallery_PageLoad Sub" + planetID + "');", True)

问题是因为javascript无法访问代码隐藏变量。

您的javascript注册如下:

<script>
      alert("planetID from PlanetGallery_PageLoad Sub " + planetID);
</script>

因此,planetID就是这样的变量。