如何将字符串从 C# 传递到 JavaScript 变量
本文关键字:JavaScript 变量 字符串 | 更新日期: 2023-09-27 18:34:30
我喜欢将字符串从C#传递给javascript变量。简单的方法是:
string aaa = "hello";
然后
<script>
var javacriptVariable = "<%=aaa%>";
</script>
但是,我问是否有另一种不使用<script>
块的方法将该变量转换为JavaScript等效项,仅使用C#代码。
谢谢。
在 C# 中将其写入div 的InnerHtml
,并从 JavaScript 代码中获取div 的innerHTML
。
笔记:
- 你必须使div
runat="server"
. - 请注意大小写(大写/小写(之间的差异C#的
InnerHtml
和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>
标签。
我实际上创建了一个名为 Ngon 的 nuget pacakge,它正是这样做的:
http://www.nuget.org/packages/NGon/
这是铁轨宝石贡的撕裂