2017-04-17 66 views
1

我想通过查询字符串传递一个GUID变量。当我运行我的比赛,我可以看到在查询字符串所需的变量,当它击中的页面(planetID):变量没有设置值来自查询字符串

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

然而,当我尝试显示该变量,我在浏览器中得到这个错误控制台窗口(Chrome):

Uncaught ReferenceError: planetID is not defined

这是我的代码。你可以看到,我声明变量“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

你从哪里得到这个错误?唯一的错误,你可以得到的是一个JavaScript错误,如果我看到正确 – jackjop

+0

@jackjop感谢问!我忘了把那个信息放在那里。我更新了我的问题。我在浏览器控制台窗口中看到错误。 – SkyeBoniwell

+0

你不连接'planetID'。你没有传递你的'planetID' VB变量的值,你只是将字符串'“planetID”'传递给JavaScript。 – Santi

回答

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成为一个变量这种方式。