我试图通过查询字符串传递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
我不确定为什么它不起作用。我想我需要另一双眼睛。
如果有人有任何建议,我很乐意听到他们的意见!
谢谢!
答案 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就是这样的变量。