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 - 如何触发键盘输入事件以在下一行文本区域添加缩进

javascript - 为将发布到 npm 的 js 包包含 Typescript 类型的正确方法是什么?

c# - C# 中有 System.IO.BufferedStream 的替代品吗?

c# - 闭包和lambda之间的区别?

javascript - 在其他DIV(由其他类别指定)内追加DIV(由类别指定)

javascript - 在javaScript中添加

php - Wordpress表单上的必需警报

c# - 范围之间的随机日期时间 - 不统一输出

javascript - 没有回调成功函数的嵌套 AJAX 请求

jQuery 动画滚动 : Can I limit the function to specific targets?