gpt4 book ai didi

javascript - 您可以从同一个 UserControls Javascript 调用 UserControl 服务器函数吗?

转载 作者:行者123 更新时间:2023-12-03 11:48:30 28 4
gpt4 key购买 nike

我不确定这个问题是否已经发布,并且我已经检查了建议的 SO 链接,但似乎没有一个链接与该问题完全相关。因此,如果有人认为这可能是重复的,请发布建议答案的链接并原谅这篇文章。

解决我的问题的方法可能不止一种,但为了简洁起见,我有一个用户控件,我想对其相应的服务器端方法使用 JavaScript 或 JQuery 调用。

例如,假设我要为我的用户控件提供一些服务器端代码,例如:

 public partial class UserControls_MyControl : UserControl
{
public string ExecuteThis(string someValue)
{
return someValue;
}
}

我想使用 JavaScript 从用户控件客户端调用 ExecuteThis 方法。我知道如果是使用其他机制从父页面进行调用,这是可能的;页面方法。但是当客户端和服务器代码都驻留在用户控件中时,如何实现这一点。

我遇到了一些建议使用 WebService 代理的帖子和引用文章,并且我已经尝试过使用 AJAX 从用户控件客户端脚本调用 WebService 并取得了一些成功。

function MakeWebServiceCall()
{
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "/WebServices/MyService.asmx/SomeMethod",
data: "{}",
dataType: "json",
success: function (msg) {
alert(msg.d);
},
error: function(error)
{
alert(error.responseText);
}
});
}

但是如何将 WebService 调用绑定(bind)回用户控件方法呢?或者说有可能吗?或者有一些更优雅的方法来做到这一点?

最佳答案

您必须在页面中使用标记为 WebMethod 的用户控件,然后该方法将调用您的用户控件方法。

在您的页面中:

[WebMethod]
public static string ExecuteThis(string somevalue)
{
return userCtrl.ExecuteThis(somevalue);
}

在你的ajax调用中:

url: "/MyPage.aspx/ExecuteThis"

关于javascript - 您可以从同一个 UserControls Javascript 调用 UserControl 服务器函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941407/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com