将参数传递给使用JavaScript的服务器方法
问题描述:
我在我的代码页面中有一个公开的字符串。 我想从javascript中调用此方法。将参数传递给使用JavaScript的服务器方法
我想传递的参数是从ddl变化的变量。
所以我有这样的事情:
var value = document.getElementById('ddlContact').value;
<%=PopulateContactFields("value") %>
这个向下传递字“值”,而不是价值的数据。
我找不出合适的语法来传递数值。
由于
答
正如其他人所说,试图直接从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;
}
}
答
你是显示在生成HTML时,执行服务器侧的代码。换句话说,它会在它碰到浏览器之前执行,并且您的用户有机会对页面执行任何操作。
无论您在此使用何种语法,此时都无法访问您所需的信息 - 它尚不存在。
这里的正确方法是将此信息发送到服务器或者通过发布页面或使用AJAX,然后,对请求的尾部/响应周期做你的处理
另一种选择是做处理客户端使用Javascript
你正在尝试做的是不可能的。你应该阅读关于ajax。 – 2010-03-11 15:57:58