C# 使用JavaScript将参数传递给服务器方法

C# 使用JavaScript将参数传递给服务器方法,c#,javascript,html,anchor,servertag,C#,Javascript,Html,Anchor,Servertag,在我的代码隐藏页面中有一个接受字符串的public。 我想从javascript调用这个方法 我要传递的参数是从ddl更改而来的变量 所以我有这样的想法: var value = document.getElementById('ddlContact').value; <%=PopulateContactFields("value") %> var value=document.getElementById('ddlContact').value; 这将传递单词

在我的代码隐藏页面中有一个接受字符串的public。 我想从javascript调用这个方法

我要传递的参数是从ddl更改而来的变量

所以我有这样的想法:

 var value = document.getElementById('ddlContact').value;
        <%=PopulateContactFields("value") %>
var value=document.getElementById('ddlContact').value;
这将传递单词“value”,而不是value中的数据

我想不出正确的语法来传递值中的数据


谢谢

生成HTML时,您正在显示的代码将在服务器端执行。换句话说,它是在点击浏览器之前执行的,您的用户有机会对页面进行任何操作

无论您在这里使用什么语法,此时都无法访问您想要的信息-它还不存在

正确的方法是通过发布页面或使用AJAX将此信息发送到服务器,然后在请求/响应周期的末尾进行处理


另一种选择是使用Javascript处理客户端,正如其他人提到的,直接从Javascript访问C#代码是不可能的

然而,你可以间接地与它交流

我认为最好的方法是结合使用jQuery和
[WebMethod]
属性

使用jQuery执行AJAX调用的javascript函数:

function Search() {
    var search = $('#<%= ddlContact.ClientId %>').val();
    var options = {
        type: "POST",
        url: "Default.aspx/Hello",
        data: "{'name' :'" + search + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg);
        }
    };
    $.ajax(options);
}

你想做的事是不可能的。您应该了解ajax。
public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}