将变量插入 Response.Write() 字符串



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

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

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

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

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

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

至于为什么,请阅读以下内容:脚本管理器控件实际上做了什么?

最新更新