使用 JavaScript 将参数传递给服务器方法

发布于 2024-08-24 22:57:04 字数 302 浏览 4 评论 0原文

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

我想要传递的参数是从 ddl 更改而来的变量。

所以我有这样的东西:

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

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

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

谢谢

I have a public in my code behind page that takes a string.
I would like to call this method from javascript.

The parameter that I want to pass down is variable that changes from a ddl.

So I have something like this:

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

This passes down the word 'value' and not the data in value.

I can't figure out the proper syntax to pass down the data in value.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

断舍离 2024-08-31 22:57:04

正如其他人提到的,尝试直接从 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);
}

后面的代码:

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}

As mentioned by others, trying to access C# code behind directly from javascript is impossible.

However, you can communicate with it indirectly.

I think your best shot is to use a combination of jQuery and the [WebMethod] attribute.

javascript function using jQuery to do an AJAX call:

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);
}

Code behind:

public partial class _Default : System.Web.UI.Page
{
    [WebMethod]
    public void Hello(string name)
    {
      return "Hi " + name;
    }
}
一抹微笑 2024-08-31 22:57:04

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

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

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

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

The code you are showing is executed server side when the HTML is generated. In other words it is executed BEFORE it hits the browser and your user had a chance to do anything with the page.

No matter what syntax you would use here the information you want cannot be accessed at this time - it does not exist yet.

The right approach here is to sent this information to the server either by posting the page or using AJAX and then, on the tail end of request/response cycle do your processing

Another option would be to do the processing client side using Javascript

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文