Ajax post函数没有在我的jquery MVC4应用程序中触发?

时间:2012-11-01 05:24:06

标签: jquery asp.net-mvc-4

大家好我有一个ajax,它必须将数据发布到我的控制器动作方法,但是post函数没有触发它没有点击我的Action方法,任何人都可以告诉我哪里做错了,功能保存菜单我调用我的按钮的onclick函数,每件事情都很顺利它会执行savemenu和parsetree这个函数但是我的ajax方法没有触发:

         function savemenu() {
        var columns = $("#columnholder > div").length;
        $("#columnholder > div").each(function (data) {
            var divid = $(this).attr("id");
            parseTree(divid);
        });
    }
    function parseTree(ul) {
        var brand = "";
        var parent;
        alert(ul);
        $("#" + ul).find("ol").each(function (event, ui) {                
            $("#" + ul).find("li").each(function () {
                parent = $(this).attr("parent");
                if ($(this).children("span").length) {
                    brand = brand + $(this).children("span").html() + '~' + $(this).children("span").attr('id') + "=>" + parent + '|';                       
                    alert(brand);
                }                    
            });
            return false;
        });           
        var postdata = JSON.stringify(brand);            
        var MenuBuilderURL = '@Url.Action("MenuDrag","MenuBuilder")';
        alert(MenuBuilderURL);
        $.ajax({
            type: "POST",
            url: "/MenuBuilder/MenuDrag/",
            dataType: "json",
            data: JSON.stringify(brand),
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                alert(data.Result);
            },                
            traditional: true
        });
    }

这是我的控制器动作方法

    public ActionResult MenuDrag()
    {
        return View();
    }
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult MenuDrag(List<String> data)
    {
        return View();
    }

任何人都可以帮助我吗

1 个答案:

答案 0 :(得分:0)

正如你所说的ajax调用正在激活你的方法,现在如果你想将你的字符串发布到动作

替换

    var postdata = JSON.stringify(brand); 

   var postdata = {};
        postdata.menustring = brand;

并在你的ajax post方法中

    $.ajax({
            url: 'yoururl',
            type: "POST",
            dataType: "json",
            data: JSON.stringify(postdata),
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                alert(data.Result);
            },
            traditional: true
        });

希望它会帮助你