从用户控件内部在 Umbraco 中进行 Ajax 调用

发布于 2024-10-21 05:34:11 字数 773 浏览 0 评论 0原文

对于 Umbraco 项目,我正在尝试进行简单的 Ajax 调用。我无法使用 PageMethods,因为我需要从 UserControl 内部进行调用。 我尝试通过 Web 服务调用来完成此操作,如下所示:

Web 服务方法:

[System.Web.Script.Services.ScriptService]
public class MapService : System.Web.Services.WebService
{
    [WebMethod]
    public static string GetCities(string ProvinceCode)
    {
        return "foo";
    }
}

我的 ASCX 文件中的 JS 部分:

<script language="javascript" type="text/javascript">
    function callServer(src) {
        MapService.GetCities(src, displayMessageCallback);
    }

    function displayMessageCallback(result) {
        fillDDL(result);
    }
</script>

问题是,“MapService.GetCities”方法没有被调用。

这里可能有什么问题?

或者,有什么更好的方法可以在用户控件中进行此类 Ajax 调用?

For an Umbraco project, I am trying to make a simple Ajax call.. I can't use PageMethods because I need to make the call from inside a UserControl..
I tried to do it via web service call like this:

Web service method:

[System.Web.Script.Services.ScriptService]
public class MapService : System.Web.Services.WebService
{
    [WebMethod]
    public static string GetCities(string ProvinceCode)
    {
        return "foo";
    }
}

JS part in my ASCX file:

<script language="javascript" type="text/javascript">
    function callServer(src) {
        MapService.GetCities(src, displayMessageCallback);
    }

    function displayMessageCallback(result) {
        fillDDL(result);
    }
</script>

The problem is, "MapService.GetCities" method doesn't get invoked..

What might be the problem here?

Alternatively, what is there any better way to make these kind of Ajax calls in a User Control?

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

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

发布评论

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

评论(3

宫墨修音 2024-10-28 05:34:11

我一直在使用 Umbraco 基础 REST 扩展来处理此类事情。我认为它的实现要简单得多,如果您在服务器上使用 JSON 序列化器,您甚至可以在客户端上拥有适当的 JSON 对象。

I've been usign the Umbraco base REST Extensions for this kind of thing. I think it's a lot simpler to implement and if you use a JSON Serialiser on the server you even have proper JSON objects on the client.

巷雨优美回忆 2024-10-28 05:34:11

使用REST 方法来执行此操作。我们已经在我们的项目中实施了这一点。为此,您必须编辑 restExtensions.config 并添加您的条目​​。

Use REST method for doing this. we have implemented this for our projects. For this you have to edit the restExtensions.config and add your entry.

过期以后 2024-10-28 05:34:11

我认为问题可能是用户控件内的 JavaScript 无法与页面中的脚本管理器通信。
我可以看到两种处理这个问题的方法。
1.使用jQuery调用webmethod而不是asp.net ajax。
2.通过控制javascript调用页面javascript中的方法,该方法将调用webmethod,即使用页面作为代理。这样做的另一个优点是使您能够使用页面方法而不是 Web 服务。

I think the problem might be that the javascript inside the usercontrol does not communicate with the scriptmanager in the page.
I can see two ways of dealing with this.
1. Use jQuery to call the webmethod instead of asp.net ajax.
2. through the control javascript call a method in the page javascript which will call the webmethod, i.e. use the page as a proxy. This has the added advantage of enabling you to use a page method instead of a web service.

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