javascript - 如何将 JavaScript 变量传递给服务器端方法

标签 javascript c# jquery asp.net .net

我面临的问题是,我无法将 javascript 变量传递到服务器端,我知道在这种情况下这是无法实现的,所以我尝试使用 jQuery 将值设置为 asp 隐藏字段,并获取服务器端的标签,但不幸的是我得到的隐藏字段为空值。帮我解决这个问题

代码

$(document).ready(function(){
  var DataID = "4325";
    testDataVal(DataID);
});

function testDataVal(DataID){

<%=RenderMethod(DataID) %>  // How to pass javascript variable to server side

}
<小时/>

隐藏字段方法:

$(document).ready(function(){
     var DataID = "4325";
    testDataVal(DataID);
});

function testDataVal(DataID){
   $("#<%=hdnDataVal.ClientID %>").val(DataID);

  alert($("#<%=hdnDataVal.ClientID %>").val(DataID));    // Here using javascript I can able to set the value and when I alert the value it is displayed

  <%=RenderMethod(hdnDataVal.Value) %>  // here the hiddenfield value is empty

}

    <asp:HiddenField runat="server" ID="hdnDataVal"  />

最佳答案

首先...您不应该按照您的方式混合服务器代码和客户端代码。

这是一种糟糕的代码设计方式。始终尝试将客户端和服务器代码分开。它们在不同的时刻、地点和不同的情况下执行...将它们放在一起最终会让您遇到难以调试的错误。

我敢打赌,您在这里遇到的问题是由于这种编码方式造成的。

你在代码片段中说

<%=RenderMethod(hdnDataVal.Value) %>  // here the hiddenfield value is empty

当您的页面加载并执行服务器代码时, $(document).ready() 内的代码尚未触发,因为它会在整个页面完成加载时触发。因此,您的 RenderMethod 在您将任何值放入变量之前就会触发。

关于javascript - 如何将 JavaScript 变量传递给服务器端方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26988957/

相关文章:

javascript - 我可以使用 XPath 按 CSS 属性过滤元素吗?

c# - 使用 MVVM 的 WPF ComboBox 双向绑定(bind)问题

c# - 脚本和后台代码之间的区别?

javascript - jquery 在 div 之间切换并随后隐藏事件的 div

javascript - 使用 Javascript 突出显示带有子菜单的当前页面链接

php - 在 JavaScript (.js) 文件中包含 PHP

javascript - 如何检查 Javascript 中的 JSON 是否发生更改?

javascript - 在 HTML 中放置条件

c# - 如何在 TableLayoutPanel 中动态设置单元格颜色?

c# - 有没有一种优雅的方式来重复一个 Action ?