我想将C#中的字符串传递给javascript变量。 简单的方法就像:
string aaa = "hello";
然后
<script>
var javacriptVariable = "<%=aaa%>";
</script>
但是,我问是否有另一种方法没有使用<script>
块将该变量变为javascript等效,直接使用C#代码。
谢谢。
答案 0 :(得分:2)
将其写入C#中的div InnerHtml
,并从JavaScript代码中获取div innerHTML
。
注意:
runat="server"
。InnerHtml
和js的innerHTML
。答案 1 :(得分:0)
嗯,最好的方法是包含JSON.NET
并输出它:
var aaa = <%= JsonConvert.Serialize(aaa) %>;
然后,无论它是一个字符串,整数,数组,还是以JS可以处理它的方式序列化的任何东西。如果有必要,这也将处理任何类型的转义(例如aaa = "Hello \"World\"!"
)
另一种选择是使用处理程序/ AJAX检索它(但对于这样一个简单的任务来说,这是一个太多的开销)。
最后,您可以注册脚本:
Type type = this.GetType();
string scriptName = "assign aaa";
ClientScriptManager clientScript = Page.ClientScript;
if (!clientScript.IsClientScriptBlockRegistered(type, scripName))
{
StringBuilder sb = new StringBuilder();
sb.Append("<script type=\"text/javascript\">")
.AppendFormat("var aaa = {0};", JsonConvert.Serialize(aaa))
.Append("</" + "script>");
clientScript.RegisterClientScriptBlock(type, scripName, sb.ToString());
}
但是上面只是一种更精细的方式来结束<script>
标签。
答案 2 :(得分:0)