首页 新闻 会员 周边

MVC的ajax提交

0
悬赏园豆:50 [已解决问题] 解决于 2015-06-30 17:06

界面:

<body onload="bodyonload()">
    <div id="header" class="png_bg">
        <div id="head_wrap" class="container_12">
            <div id="logo" class="grid_4">
                <h1><span>logo</span></h1>
            </div>
            <div id="controlpanel" class="grid_8">
                <ul>
                    <li><p><strong>你好,用户名</strong></p></li>
                    <li><a href="#" class="first">设置</a></li>
                    <li><a href="#" class="last">退出登录</a></li>
                </ul>
            </div>
            <div id="navigation" class=" grid_12">
                <ul id="MenuListF">
                </ul>
            </div>
        </div><!-- end headwarp  -->
    </div><!-- end header -->
    <!-- staqrt subnav -->
    <div id="sub_nav">
        <div id="subnav_wrap" class="container_12">
            <!-- start sub nav list -->
            <div id="subnav" class=" grid_12">
                <ul id="MenuListSon">
                </ul>
            </div>
        </div>
    </div>
    <div id="main_content_wrap" class="container_12">
        <!-- start icon dock-->
        <div class="clearfix">
            @RenderBody()
        </div>
        <div id="footer" class="grid_12" style="margin-top:30px">
            <p>&copy; Copyright 2015 <a href="#" target="_blank">馨湾</a>
            </p>
        </div>
    </div>
    @Scripts.Render("~/script/jquery")
    @Scripts.Render("~/script/metro")
    @RenderSection("scripts", required: false)
</body>

提交的方法[body里面的onload方法]:

function bodyonload() //加载的是父ID为0的,即最主要的菜单
{
    var data = 0;
    $.ajax({
        type: 'post',
        async: false,
        data: data,
        url: '/Menu/GetListF',
        dataType: 'html',
        success: function (json, textStatus) {
            $("#MenuListF").append(json);
        },
        complete: function (XMLHttpRequest, textStatus) {
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            $.messager.alert("失败提示", textStatus);
        }
    });
    GetMenu(0);//初始化加载0的
}

function GetMenu(fid)//获取
{
    var data = fid;
    $.ajax({
        type: 'post',
        async: false,
        data: data,
        url: '/Menu/GetListSon',
        dataType: 'json',
        success: function (json, textStatus) {
            if (json.Total > 0) {
                for (var i = 0; i < json.Total; i++) {
                    var ShowName = json.Row[i].ShowName;
                    var URL = json.Row[i].URL;
                    var Name = json.Row[i].Name;
                    $("#MenuListSon").append("<li><a href=" + URL + " name=" + ShowName + ">" + Name + "</a></li>");
                }
            }
        },
        complete: function (XMLHttpRequest, textStatus) {
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            $.messager.alert("失败提示", textStatus);
        }
    });
}

ajax提交的控制器方法:

  public string GetListF(int id)
        {
            List<CM_Menu> list= _menuService.GetListF(id);
            string html = "";
            if (list.Count > 0)
            {
                foreach (var item in list)
                {
                    html += "<li><button onclick=GetMenu(" + item.Id + ") class='button'>" + item.Name + "</button>";
                }
            }
            return html;
        }

        public List<CM_Menu> GetListSon(int id)
        {
            return _menuService.GetListSon(id);
        }

看页面加载的时候,到complete中的时候,没有进控制器,要怎么解决,或者说要怎么改呢?

_Vegetables的主页 _Vegetables | 小虾三级 | 园豆:586
提问于:2015-06-29 22:35
< >
分享
最佳答案
0

var data = 0;你需要直接在url中凭借?id=0

收获园豆:20
吴瑞祥 | 高人七级 |园豆:29449 | 2015-06-30 06:55

这个的目的只是传递一个父ID为0的信息,就是让控制器查询的时候查询父id为0的

_Vegetables | 园豆:586 (小虾三级) | 2015-06-30 09:42

@_Vegetables: 我的意思是你传参方式有问题.楼下贴代码.这种常识问题实在不愿意理.....

吴瑞祥 | 园豆:29449 (高人七级) | 2015-06-30 10:34

@吴瑞祥: 好吧,其实根本问题不是哪里,哪里我后台写的是request,给了一个对象进去的,主要是工厂里面的编译的时候出错了,不过还是谢谢你

_Vegetables | 园豆:586 (小虾三级) | 2015-06-30 11:01
其他回答(2)
0
$.ajax({
        type: 'post',
        async: false,
        data: {id:data},
        url: '/Menu/GetListF',
        dataType: 'html',
        success: function (json, textStatus) {
            $("#MenuListF").append(json);
        },
        complete: function (XMLHttpRequest, textStatus) {
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            $.messager.alert("失败提示", textStatus);
        }
    });
View Code
收获园豆:15
芝芝07 | 园豆:365 (菜鸟二级) | 2015-06-30 09:22
0

你用get方法试试,或者你把后台的 public string GetListF(int id) 标识成使用 post 方法

收获园豆:15
认真的我 | 园豆:252 (菜鸟二级) | 2015-06-30 13:17

额, 谢谢了,问题OK了,工厂里面的写错了

支持(0) 反对(0) _Vegetables | 园豆:586 (小虾三级) | 2015-06-30 17:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册