0

大家好,我有一个 ajax,它必须将数据发布到我的控制器操作方法,但发布功能没有触发它没有击中我的操作方法,谁能告诉我我做错了什么,我在 onclick 上调用的功能保存菜单我的按钮的功能,一切都很好,功能保存菜单和分析树正在运行,但我的 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();
    }

有人可以帮我吗

4

1 回答 1

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
        });

希望它会帮助你

于 2012-11-02T07:12:59.793 回答