【问题标题】:Pass a parameter to server method using JavaScript使用 JavaScript 将参数传递给服务器方法
【发布时间】:2010-03-11 15:46:39
【问题描述】:

我的代码隐藏页面中有一个公共的,它接受一个字符串。 我想从 javascript 调用这个方法。

我要传递的参数是从 ddl 改变的变量。

所以我有这样的东西:

 var value = document.getElementById('ddlContact').value;
        <%=PopulateContactFields("value") %>

这会传递“价值”这个词,而不是价值中的数据。

我无法找出正确的语法来传递值中的数据。

谢谢

【问题讨论】:

  • 您尝试做的事情是不可能的。您应该阅读有关 ajax 的内容。

标签: c# javascript html anchor servertag


【解决方案1】:

正如其他人所说,试图直接从 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;
    }
}

【讨论】:

    【解决方案2】:

    您显示的代码在生成 HTML 时在服务器端执行。换句话说,它在访问浏览器之前执行,您的用户有机会对页面执行任何操作。

    无论您在此处使用什么语法,此时都无法访问您想要的信息 - 它还不存在。

    这里的正确方法是通过发布页面或使用 AJAX 将此信息发送到服务器,然后在请求/响应周期的尾端进行处理

    另一种选择是使用 Javascript 进行处理客户端

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 2011-02-20
      • 1970-01-01
      • 2015-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多