2017-04-17 44 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成爲一個變量這種方式。