【问题标题】:is there a way to process .NET/C# variables on external .js?有没有办法在外部 .js 上处理 .NET/C# 变量?
【发布时间】:2011-09-06 14:08:46
【问题描述】:

我的变量在 aspx.cs 中,例如:

protected string myVar="Hello";

现在,如果我去我的scripts.js 文件添加为:

<head>
    <script src="/scripts/scripts.js" type="text/javascript"></script>
</head>

我试试这个:

var myVarJs="<%=myVar&>";

它没有获得 .NET myVar 值。

有没有办法抓住它还是我在做梦?

【问题讨论】:

  • 我认为您可以将脚本标记为 .aspx,然后您应该可以。
  • 有一些方法可以让 ASP.Net 动态处理 .js 文件,但是在 .js 文件中做这种事情是个坏主意,因为它可能会破坏客户端缓存。 Ivan 发布的答案是一个更好的解决方案。
  • 我想看看将数组传递给java脚本数组的最佳方法,也许是二维字符串数组。

标签: c# javascript .net


【解决方案1】:

在脚本前插入变量:

<head>
    <script type="text/javascript"> var myVarJs="<%=myVar%>"; </script>
    <script src="/scripts/scripts.js" type="text/javascript"></script>
</head>

【讨论】:

    【解决方案2】:

    您还可以注册/渲染客户端脚本。所以你可以在后端声明变量,然后渲染 javascript 变量。

    【讨论】:

    【解决方案3】:

    我认为在 javascript 代码中直接访问 C# 变量是不可能的。 因为 C# 是客户端,而 Javscript 是服务器端。

    除非在 Asp.net 页面上,您将变量保存在隐藏字段或标签中作为不可见的文本。

    ASP:

    <asp:HiddenField ID="hidden" runat="server" value="<%=strvariable %>" />
    

    Javascript:

    function Button_Click()
    {
        alert(document.getElementById('hidden').value); 
    }
    

    所以这将获得 ID 为“隐藏”的隐藏字段。

    我认为这可行。

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 2012-01-11
      • 2021-04-11
      • 2018-05-11
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多