如何将字符串从 C# 传递到 JavaScript 变量

How to pass a string from C# to a javascript variable

本文关键字:JavaScript 变量 字符串      更新时间:2023-09-26

我喜欢将字符串从C#传递给javascript变量。简单的方法是:

string aaa = "hello";

然后

<script>
    var javacriptVariable = "<%=aaa%>";
</script>

但是,我问是否有另一种不使用<script>块的方法将该变量转换为JavaScript等效项,仅使用C#代码。

谢谢。

在 C# 中将其写入div 的InnerHtml,并从 JavaScript 代码中获取div 的innerHTML

笔记:

  1. 你必须使div runat="server" .
  2. 请注意大小写(大写/小写(之间的差异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/

这是铁轨宝石贡的撕裂