【问题标题】:Pass Javascript Variable To C# Code Behind将 Javascript 变量传递给 C# 代码
【发布时间】:2013-02-20 10:25:03
【问题描述】:

如何从 javascript 获取价值到 C# 代码背后?我对下面的代码有一个想法。在javascript代码中,我想用字符串值分配“HiddenField”控件的值,然后我想从后面代码中的“HiddenField”中获取这个值。但是用这段代码我做不到。你能告诉我怎么做吗?

<script>
    $(function () {
        document.getElementById('HiddenField').value = "active";
        console.log(<%= this.HiddenField.Value %>)
    });
</script>
<asp:HiddenField ID="HiddenField" runat="server" Value="5" Visible="true" />

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案1】:

    您需要使用控件的ClientID 属性来获取DOM 中的实际元素ID。

    <script>
            $(function () {
                    document.getElementById('<%= HiddenField.ClientID%>').value = "active";
                    console.log(document.getElementById('<%= HiddenField.ClientID%>').value)
            });
    </script>
    
    <asp:HiddenField ID="HiddenField" runat="server" Value="5" Visible="true" />
    

    【讨论】:

    • 成功了。这是将 javascript 变量传递给 C# 的首选方式吗?
    • ClientIDMode="Static"
    • 如果您在某些逻辑上从客户端更新值,那么这是首选方式。
    • @TheChampp 正如 Stefan 所说,如果您使用 ClientIDMode 为静态,则不需要 ClientID,但此属性在 asp.net 4.0 或更高版本中可用。
    【解决方案2】:

    Control ID 用于由 ASP.NET 生成的 HTML 标记。

    document.getElementById('<%= HiddenField.ClientID%>').value = "active";
    

    当 Web 服务器控件呈现为 HTML 元素时,id HTML 元素的属性设置为 ClientID 的值 财产。 ClientID 值通常用于访问 HTML 元素 在客户端脚本中使用 document.getElementById 方法。

    【讨论】:

      【解决方案3】:

      然后在调用控制器时通过javascript函数将隐藏值作为变量发送

      确实有效,

      干杯 帕尼*

      【讨论】:

        【解决方案4】:

        你可以看看 mshtml 据我所知,您从您的 javascript 代码中调用此 C# 函数;-)

        【讨论】:

          猜你喜欢
          • 2018-01-09
          • 1970-01-01
          • 1970-01-01
          • 2011-05-10
          • 2020-01-28
          • 2011-09-05
          • 1970-01-01
          • 1970-01-01
          • 2018-03-05
          相关资源
          最近更新 更多