我的代码页面后面有一个公共字符串。 我想从javascript调用这个方法。
我要传递的参数是从ddl更改的变量。
所以我有这样的事情:
var value = document.getElementById('ddlContact').value;
<%=PopulateContactFields("value") %>
这传递了'value'这个词,而不是值中的数据。
我无法弄清楚传递数值的正确语法。
由于
答案 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
来处理客户端