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/

相关文章:

java - 在 iTextSharp 中更改 PDF 文档的页面顺序

javascript - 动画文本区域以适应文本区域的内容

javascript - D3 : Circle Points don't update when changing slider

javascript - 在不转换 `height` 属性的情况下折叠展开动画?

c# - 编码不当 : C# array to a C++ unmanaged array

c# - 如何将数据表项添加到列表?

javascript - 在 Bootstrap 4 模式中打开特定幻灯片

javascript - 在 pjax 请求上显示加载文本

javascript - jquery-function 不显示任何内容

javascript - 按下箭头键时移动 HTML 背景