我在我的代码后面的页面中有一个公共的,它接受一个字符串。我想从 javascript 调用这个方法。
我要传递的参数是从 ddl 更改的变量。
所以我有这样的事情:
var value = document.getElementById('ddlContact').value;
<%=PopulateContactFields("value") %>
这会传递“价值”这个词,而不是价值中的数据。
我无法找出正确的语法来传递值中的数据。
谢谢
我在我的代码后面的页面中有一个公共的,它接受一个字符串。我想从 javascript 调用这个方法。
我要传递的参数是从 ddl 更改的变量。
所以我有这样的事情:
var value = document.getElementById('ddlContact').value;
<%=PopulateContactFields("value") %>
这会传递“价值”这个词,而不是价值中的数据。
我无法找出正确的语法来传递值中的数据。
谢谢
正如其他人所提到的,尝试直接从 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;
}
}
您显示的代码在生成 HTML 时在服务器端执行。换句话说,它在访问浏览器之前执行,您的用户有机会对页面执行任何操作。
无论您在这里使用什么语法,此时都无法访问您想要的信息——它还不存在。
正确的方法是通过发布页面或使用 AJAX 将此信息发送到服务器,然后在请求/响应周期的尾端进行处理
另一种选择是使用Javascript进行处理客户端