在使用web服务的asp.net中创建数据驱动的jquery下拉菜单时出错

在使用web服务的asp.net中创建数据驱动的jquery下拉菜单时出错,jquery,asp.net,wcf,web-services,Jquery,Asp.net,Wcf,Web Services,我已经阅读了下面的文章并实现了相同的功能,我使用的是webservices而不是wcf服务,`当我运行下面的html文件时,动态菜单不会显示。请问我到底哪里出了问题。 这是我的html文件 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.

我已经阅读了下面的文章并实现了相同的功能,我使用的是webservices而不是wcf服务,`当我运行下面的html文件时,动态菜单不会显示。请问我到底哪里出了问题。 这是我的html文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Sample Test Application</title>
 <style type="text/css">
    .Menu
    {
        width:200px;
        text-align:center;
        border:solid 2px gray;
        padding:0px;
        background-color:Silver;
        cursor:hand;
        font-weight:bold;
    }

    .MenuItem
    {
        width:192px;
        text-align:center;
        border:solid 1px silver;
        padding:2px;
        background-color:whitesmoke;
    }

</style>
<script type="text/javascript" src="Scripts\jquery-1.4.1.js">
 $(document).ready(function() {
    $.ajax(
    {
        type: "GET",
        url: "http://localhost:50542/MenuItems.asmx/GetMenus",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: CreateMenus,
        error: function(err) {
            alert(err.status + " - " + err.statusText);
        }
    }
    );
});


   function CreateMenus(results) {
 for (var i = 0; i < results.length; i++) {
  $("<div class='Menu'>" + results[i].Text + "</div>")
     .click({ MenuId: results[i].MenuId }, OnMenuClick)
     .appendTo("#accordionContainer");
 }
}


    function OnMenuClick(event)
     {
    $("div[id ^= 'menuItemGroup']").slideUp(500);
    $.ajax(
        {
            type: "GET",
            url: "http://localhost:50542/MenuItems.asmx/GetMenuItems",
            data: '{"menuId":"' + event.data.MenuId + '"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(items) {
                $(event.target).children().remove();
                var html = "<div id='menuItemGroup" + event.data.MenuId + "' style='display:none'>";
                for (var j = 0; j < items.length; j++) {
                    html += "<div class='MenuItem'> <a href='" + items[j].NavigateUrl + "'>"  + 
                    items[j].Text + "</a></div>";
                }
                html += "</div>";
                $(event.target).append(html);
                $("#menuItemGroup" + event.data.MenuId).slideDown(500);
            },
            error: function(err) {
                alert(err.status + " - " + err.statusText);
            }
        }
        )
}       


</script>

</head>
<body>
<div id="accordionContainer" ></div>
<div class="Menu"></div>
<div class="MenuItem"></div>
</body>
</html>

样本测试申请
.菜单
{
宽度:200px;
文本对齐:居中;
边框:实心2倍灰色;
填充:0px;
背景颜色:银色;
光标:手;
字体大小:粗体;
}
梅努特姆先生
{
宽度:192px;
文本对齐:居中;
边框:纯银1件;
填充:2px;
背景色:白烟;
}
$(文档).ready(函数(){
$.ajax(
{
键入:“获取”,
url:“http://localhost:50542/MenuItems.asmx/GetMenus",
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:创建菜单,
错误:函数(err){
警报(错误状态+“-”+错误状态文本);
}
}
);
});
函数创建菜单(结果){
对于(var i=0;i
这是我的Web服务文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;

namespace ServiceMahe
{
    /// <summary>
    /// Summary description for MenuItems
    /// </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 MenuItems : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }



    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public Menu[] GetMenus()
        {
            SampleDataClassesDataContext db = new SampleDataClassesDataContext();
            List<Menu> menus = new List<Menu>();
            var temp = from item in db.Menus
                       select item;
            foreach (var obj in temp)
            {
                Menu m = new Menu();
                m.MenuId = obj.MenuId;
                m.Text = obj.Text;
                menus.Add(m);
            }
            return menus.ToArray();
        }



        [WebMethod]
        [ScriptMethod(ResponseFormat=ResponseFormat.Json)]
         public MenuItems1[] GetMenuItems(int menuId)
        {
        SampleDataClassesDataContext db = new SampleDataClassesDataContext();
        List<MenuItems1> items = new List<MenuItems1>();
        var temp = from item in db.MenuItems
                   where item.MenuId == menuId
                   select item;
        foreach (var obj in temp)
        {
            MenuItems1 mi = new MenuItems1();
            mi.MenuId = (int)obj.MenuId;
            mi.MenuItemId = obj.MenuItemId;
            mi.Text = obj.Text;
            mi.NavigateUrl = obj.NavigateUrl;
            items.Add(mi);
        }
        return items.ToArray();
    }

    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Services;
使用System.Web.Script.Services;
命名空间服务
{
/// 
///菜单项的摘要说明
/// 
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
//[System.Web.Script.Services.ScriptService]
公共类菜单项:System.Web.Services.WebService
{
[网络方法]
公共字符串HelloWorld()
{
返回“你好世界”;
}
[网络方法]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
公共菜单[]获取菜单()
{
SampleDataClassesDataContext db=新SampleDataClassesDataContext();
列表菜单=新列表();
var temp=数据库菜单中的源项
选择项目;
foreach(温度中的var obj)
{
菜单m=新菜单();
m、 MenuId=obj.MenuId;
m、 Text=obj.Text;
菜单。添加(m);
}
返回菜单。ToArray();
}
[网络方法]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public MenuItems1[]GetMenuItems(int menuId)
{
SampleDataClassesDataContext db=新SampleDataClassesDataContext();
列表项=新列表();
var temp=来自db.MenuItems中的项
其中item.MenuId==MenuId
选择项目;
foreach(温度中的var obj)
{
MenuItems1 mi=新MenuItems1();
mi.MenuId=(int)obj.MenuId;
mi.MenuItemId=obj.MenuItemId;
mi.Text=obj.Text;
mi.NavigateUrl=obj.NavigateUrl;
项目.添加(mi);
}
返回项目。ToArray();
}
}
}
取消对此行的注释

[System.Web.Script.Services.ScriptService]
解释就在代码本身中

允许此Web服务 使用ASP.NET从脚本调用 AJAX,取消对以下行的注释


即使改变了这个,我的菜单还是空的