2017-05-11 145 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?