MVC使用Jquery ajax将模态数组传递给控制器

时间:2014-09-11 08:21:06

标签: javascript jquery ajax asp.net-mvc-4 controller

我有以下场景(这只是实际场景的一个例子,因为实际是很多代码)。

::实体

public class stuff
{
    public int ID {get;set;}
    public string sometext {get;set;}
}

::模型

public class StuffModel
{
    public IEnumerable<entites.stuff> myStuff
}

::视图

<form class="frmItem"...>
    <input type="hidden" name="Item.ID" id="Item_ID" value="something" />
    <input type="text" name="Item.stuff" id="Item_stuff" value="some text" />
</form>
<form class="frmItem"...>
    <input type="hidden" name="Item.ID" id="Item_ID" value="something" />
    <input type="text" name="Item.stuff" id="Item_stuff" value="some text" />
</form>

::控制器

[HttpPost]
public ActionView ProcessStuff(StuffModel myModel)
{
    ...
}

我已经尝试过以下操作,但我无法填充模型:

$('.btnRecalc').click(function () {
    var stuffItems = new Array();

    $('.sItem').each(function () {
        var flag = $(this).data('haschanged');
        if (flag != 0) {
            stuff[stuff.length] = $(this).find('.frmstuffItem').serialize();
        }
    });

    if (stuffItems[0] != null)
    {
        var response = $.ajax({
            url: '@Url.Action("dosomething")'
        , type: 'POST'
        , data: { myModel: JSON.stringify({ myStuff: stuffItems}) }
        });
    };
});

对于ajax调用的“data”行,我尝试了以下所有内容:

, data: { JSON.stringify({ myStuff: stuffItems}) }

, data: { JSON.stringify({ myModel: stuffItems}) }

, data: { myModel: { myStuff: stuffItems} }

, data: { myStuff: stuffItems }

, data: { myModel: stuffItems }

我的问题是如何向控制器发布一个模型的数组,其数据在表单中?

1 个答案:

答案 0 :(得分:0)

尝试

data: JSON.stringify({ myModel: { myStuff: stuffItems } }),
contentType: 'application/json'