将var插入Response.Write()字符串

时间:2017-05-11 20:06:44

标签: javascript c# asp.net

我在向Response.Write()字符串添加变量时遇到问题。当我没有字符串中的var时,警报会正确显示。我知道var正在从调试器中填充。我也知道字符串Concat确实通过查看Visual Studio中的locals输出返回var值的所有内容。只是不知道警报停止显示的原因。

var savedID = Session["AssignedJobID"];

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

2 个答案:

答案 0 :(得分:0)

我相信你的单引号是错误的。在将变量写入响应后,需要将其放置,以便变量的值包含在js string litteral中。否则是语法错误。

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

答案 1 :(得分:0)

使用aspnet ScriptManager将javascript写入Response.Write的页面内容。它至少将javascript片段放在正确的位置,而不是放在html的顶部。

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

至于原因,请阅读:What does script manager control actually do?

相关问题