如何在sitecore中使用jQueryAjax和webmethod

如何在sitecore中使用jQueryAjax和webmethod,sitecore,sitecore6,Sitecore,Sitecore6,我正在运行Sitecore 6.4,并尝试在Sitecore中使用ajax和webmethod获取一些数据。一切都在子布局中(用户控制) 这是调用webmethod的代码: $("#NextBanner").click(function () { $.ajax({ type: "POST", url: "/GetNext", data: "{}", contentType: "application/json; charse

我正在运行Sitecore 6.4,并尝试在Sitecore中使用ajax和webmethod获取一些数据。一切都在子布局中(用户控制)

这是调用webmethod的代码:

$("#NextBanner").click(function () {
    $.ajax({
        type: "POST",
        url: "/GetNext",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            alert('success');
        },
        error: function (err) {
            alert('error');
        }
    });
这是webmethod,返回一个字符串:

[WebMethod]
public static string GetNext()
{
    return "Hello";
}
在一个不使用Sitecore的测试项目中,我使用“Default.aspx/GetNext”作为ajax调用的url,但现在显然这不起作用,因为url,我得到了404NotFound错误

url应该是什么?子布局路径为:/layouts/sublayouts/test.ascx

有没有关于实现这一目标的不同方法的建议

谢谢, T

更新

谢谢大家的回答

我最终在website/sitecore/shell/webservices下创建了一个web服务,不确定这是否是放置web服务的正确位置,有什么建议吗

谢谢,
T

将代码放在网络表单中。不能像调用页面一样调用子布局。在ajax调用中按文件系统路径引用文件,例如/layouts/ajaxProcessor.aspx


您还应该查看以下关于sitecore和ajax的博文:

将代码放到Web表单中。不能像调用页面一样调用子布局。在ajax调用中按文件系统路径引用文件,例如/layouts/ajaxProcessor.aspx


您还应该查看以下关于sitecore和ajax的博文:

我们通常使用ASP.NET MVC控制器在sitecore项目中提供JSON数据,而不是使用web方法。正确设置后,您可以访问一些Sitecore.Context值(而不是项)和所有Sitecore数据访问API


MVC控制器中的Json()ActionResult选项使发送回序列化数据变得非常简单。

我们通常使用ASP.NET MVC控制器来为Sitecore项目中的Json数据提供服务,而不是使用web方法。正确设置后,您可以访问一些Sitecore.Context值(而不是项)和所有Sitecore数据访问API


MVC控制器中的Json()ActionResult选项使发送序列化数据变得非常简单。

我在“网站”下创建了一个文件夹,并将我的web服务放在那里。

我在“网站”下创建了一个文件夹,并将我的web服务放在那里。

很好的链接。值得注意的是,当内容类型设置适当时,WebMethods会自动将数据序列化为JSON,因此从WebMethods返回JSON是一个非常简单的方法。很好的链接。值得注意的是,当内容类型设置适当时,WebMethods会自动将数据序列化为JSON,因此从WebMethods返回JSON是一件很简单的事情。请您详细说明一下您的答案。。谢谢你能再详细说明一下你的答案吗。。谢谢