【问题标题】:Call Ajax from MasterPage with WebService使用 WebService 从 MasterPage 调用 Ajax
【发布时间】:2013-07-23 12:44:51
【问题描述】:

我正在尝试通过 Ajax 从母版页调用方法但没有成功:

母版页

$(function ListaCategorias() {
        var pageUrl = '<%=ResolveUrl("~/WebService/MenuEsquerdo.asmx")%>';

        $.ajax({
            type: "POST",
            url: pageUrl + '/ListaCategoriasMenu',
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataTyle: "json",
            async: false,
            error: function (jqXhR, textStatus, errorThrown) { alert(errorThrown); },
            success: function (data) {
                var Categorias = data.d;
                var counter = 0;

                aCategorias = [];

                //Carrega as Categorias
                $.each(Categorias, function (index, categorias) {
                    aCategorias[counter] = [
                        categorias.cat_id, categorias.cat_descricao, categorias.cat_total_anuncios
                    ];
                    counter++;
                });
            }
        });
    });

MenuEsquerdo.asmx

/// <summary>
/// Summary description for MenuEsquerdo
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class MenuEsquerdo : System.Web.Services.WebService
{

    [WebMethod]
    //[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public static IList ListaCategoriasMenu()
    {
        tab_categorias tabCategorias = new tab_categorias { cat_ativo = true, cat_deletado = false };
        var listCategorias = tabCategorias.ListaCategoriasMenu();

        return listCategorias;
    }
}

我刚刚收到错误消息“内部服务器错误”。

我做错了什么?

我想加载一个我认为使用 WebService 的菜单,但如果你知道更好的选择,比如事件处理程序,我很开放。

谢谢。

更新

我也尝试使用用户控件,但返回的错误信息是 Forbbiden!

【问题讨论】:

    标签: c# asp.net jquery master-pages


    【解决方案1】:

    您的ListaCategoriasMethod() 是一种静态网络方法,它们在网络服务中不起作用。查看这个 Stackoverflow 问题 Why are Static Methods not Usable as Web Service Operations in ASMX Web Services? 了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 2011-09-06
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多