我喜欢将字符串从 C# 传递给 javascript 变量。简单的方法是这样的:
string aaa = "hello";
接着
<script>
var javacriptVariable = "<%=aaa%>";
</script>
但是,我问是否有另一种方法,而不使用<script>
块来使该变量成为 javascript 等价物,直接使用 C# 代码。
谢谢你。
我喜欢将字符串从 C# 传递给 javascript 变量。简单的方法是这样的:
string aaa = "hello";
接着
<script>
var javacriptVariable = "<%=aaa%>";
</script>
但是,我问是否有另一种方法,而不使用<script>
块来使该变量成为 javascript 等价物,直接使用 C# 代码。
谢谢你。
将其写入InnerHtml
C# 中的 div,并innerHTML
从您的 JavaScript 代码中获取 div。
笔记:
runat="server"
。InnerHtml
注意 C#和 js之间大小写(大写/小写)的区别innerHTML
。好吧,最好的方法是包含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>
标签结尾的更复杂的方式。