0

こんにちはすべて私はコントローラーのアクションメソッドにデータを投稿する必要があるajaxを持っていますが、投稿機能が起動していませんそれは私のアクションメソッドにヒットしません、誰かが私が間違っているところを教えてもらえますか、関数保存メニューは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();
    }

誰かがここで私を助けてくれますか

4

1 に答える 1

0

あなたが言ったように、ajax呼び出しはあなたのメソッドにヒットしています、今あなたがあなたの文字列をアクションに投稿したいなら

交換

    var postdata = JSON.stringify(brand); 

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

そしてあなたのajaxpostメソッドで

    $.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 に答える