MVC将模式数组传递给控制器使用jquery ajax
问题描述:
我有以下场景(这只是实际场景的一个示例,因为实际是很多代码)。MVC将模式数组传递给控制器使用jquery ajax
::实体
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: { JSON.stringify({ myStuff: stuffItems}) }
, data: { JSON.stringify({ myModel: stuffItems}) }
, data: { myModel: { myStuff: stuffItems} }
, data: { myStuff: stuffItems }
, data: { myModel: stuffItems }
我的问题是如何向控制器发布模型的数组,其数据在表单中?
答
尝试
data: JSON.stringify({ myModel: { myStuff: stuffItems } }),
contentType: 'application/json'
一个很好的问题...我会编辑我的问题,包括该信息。 – StuartMc 2014-09-11 08:23:30
你是否确实在任何地方写过'stuffItems'?什么是“东西”?关于javascript代码的其他一些注意事项:检查一个数组是否有任何内容可以执行'if(array.length)'。要添加一个项目到一个数组,你可以使用'array.push(item)' – xec 2014-09-11 08:51:17
对不起,是的,它说的东西[stuff.length]应该说stuffItems [stuffItems.length]。感谢js的信息...我会做出这些改变。 – StuartMc 2014-09-11 09:05:26