我有一个公共页面的背后我的代码,需要一个字符串。 我想从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处理客户端

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top