将变量从javascript传递到c时出现问题#

将变量从javascript传递到c时出现问题#,javascript,c#,jquery,Javascript,C#,Jquery,我试图将一个变量的值从javascript传递到C# 以下是客户端部分: <input type="text" value="1" id="h" name="n" runat="server" /> <script> $("a").on("tap", function (event) { var a = event.target.id; $("#h").val(a); }); </script>

我试图将一个变量的值从javascript传递到C#

以下是客户端部分:

  <input type="text" value="1" id="h" name="n" runat="server" />
  <script>
    $("a").on("tap", function (event) {
    var a = event.target.id;
    $("#h").val(a);
    });
  </script>          
<%
string param = h.Value;
Response.Write(param);
            %>

$(“a”)。点击时,功能(事件){
var a=event.target.id;
$(“#h”).val(a);
});
以及服务器端部分:

  <input type="text" value="1" id="h" name="n" runat="server" />
  <script>
    $("a").on("tap", function (event) {
    var a = event.target.id;
    $("#h").val(a);
    });
  </script>          
<%
string param = h.Value;
Response.Write(param);
            %>

输入字段的初始值为1。JQuery事件会将value属性更改为(比如)5。当我尝试从服务器端访问输入值(h.value)时,该值再次为1

我做错了什么


谢谢。

我觉得您需要使用ASP.NET
文本框
控件,而不是普通的html
输入

这里有一个基本问题。浏览器上的更改发生在浏览器上。它们与服务器无关,您无法从服务器访问它们。要从浏览器与服务器通信,您需要从客户端向服务器发送HTTP请求(例如,通过AJAX请求或form post)这就是输入字段具有“runat”属性的原因。这是一个aspx页面。runat属性没有区别。它无法将浏览器直接连接到服务器,因此它们总是“看到”相同的数据。但是,如果您正在发回,而这是winforms,您的HTML标记看起来不正确。您可能需要一个ASP控件(例如,它取决于框架,以及如何将状态返回到服务器。@James Gaunt最终,我使用了url参数。@James Gaunt使用ASP.NET控件也有同样的效果。似乎使用AJAX发布值是不可避免的。