C# 使用JavaScript将参数传递给服务器方法
在我的代码隐藏页面中有一个接受字符串的public。 我想从javascript调用这个方法 我要传递的参数是从ddl更改而来的变量 所以我有这样的想法:C# 使用JavaScript将参数传递给服务器方法,c#,javascript,html,anchor,servertag,C#,Javascript,Html,Anchor,Servertag,在我的代码隐藏页面中有一个接受字符串的public。 我想从javascript调用这个方法 我要传递的参数是从ddl更改而来的变量 所以我有这样的想法: var value = document.getElementById('ddlContact').value; <%=PopulateContactFields("value") %> var value=document.getElementById('ddlContact').value; 这将传递单词
var value = document.getElementById('ddlContact').value;
<%=PopulateContactFields("value") %>
var value=document.getElementById('ddlContact').value;
这将传递单词“value”,而不是value中的数据
我想不出正确的语法来传递值中的数据
谢谢生成HTML时,您正在显示的代码将在服务器端执行。换句话说,它是在点击浏览器之前执行的,您的用户有机会对页面进行任何操作 无论您在这里使用什么语法,此时都无法访问您想要的信息-它还不存在 正确的方法是通过发布页面或使用AJAX将此信息发送到服务器,然后在请求/响应周期的末尾进行处理
另一种选择是使用Javascript处理客户端,正如其他人提到的,直接从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);
}
你想做的事是不可能的。您应该了解ajax。
public partial class _Default : System.Web.UI.Page
{
[WebMethod]
public void Hello(string name)
{
return "Hi " + name;
}
}