2017-05-11 146 views
0

我無法向Response.Write()字符串中添加一個變量。當我在字符串中沒有var時,警報正確顯示。我知道var正在從調試器中填充。我也知道字符串Concat確實可以通過查看Visual Studio中的本地輸出來返回var值。只是不知道爲什麼警報停止顯示。在Response.Write()字符串中插入一個var字符串

var savedID = Session["AssignedJobID"]; 

System.Web.HttpContext.Current.Response.Write("<script language='javascript'>alert('Work Request Created.'" + savedID + ");</script>"); 
+0

告訴我們,不工作的代碼(版本VAR)。 –

回答

0

我相信你的單引號出錯了。在將變量寫入響應之後,需要將它放置,以便將變量的值包含在js字符串中。否則,它是一個語法錯誤。

System.Web.HttpContext.Current.Response.Write($"<script language='javascript'>alert('Work Request Created. " + {savedID} + "');</script>"); 
+0

就是這樣。感謝第二雙眼睛。我認爲它必須是小事。 – dstineback

0

使用aspnet ScriptManager將JavaScript寫入您的Response.Write頁面insead。它至少將JavaScript片段放在正確的位置,而不是位於html的頂部。

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "showAlert", "alert('Work Request Created. " + savedID + "');", true); 

至於爲什麼,請閱讀本:What does script manager control actually do?