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

时间:2010-03-11 15:46:40

标签: c# javascript html anchor servertag

我的代码页面后面有一个公共字符串。 我想从javascript调用这个方法。

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

所以我有这样的事情:

 var value = document.getElementById('ddlContact').value;
        <%=PopulateContactFields("value") %>

这传递了'value'这个词,而不是值中的数据。

我无法弄清楚传递数值的正确语法。

由于

2 个答案:

答案 0 :(得分:0)

正如其他人所说,尝试直接从javascript访问C#代码是不可能的。

但是,您可以间接与进行通信

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

javascript函数使用jQuery进行AJAX调用:

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);
}

代码背后:

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}

答案 1 :(得分:-1)

生成HTML时,您显示的代码在服务器端执行。换句话说,它会在它到达浏览器之前执行,并且您的用户有机会对该页面执行任何操作。

无论您在此使用何种语法,此时都无法访问您想要的信息 - 它还不存在。

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

另一个选择是使用Javascript

来处理客户端