1

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

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

所以我有这样的事情:

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

这会传递“价值”这个词,而不是价值中的数据。

我无法找出正确的语法来传递值中的数据。

谢谢

4

2 回答 2

0

正如其他人所提到的,尝试直接从 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);
}

后面的代码:

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}
于 2010-03-11T16:13:34.713 回答
-1

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

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

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

另一种选择是使用Javascript进行处理客户端

于 2010-03-11T16:05:08.453 回答