【发布时间】:2014-09-11 08:21:05
【问题描述】:
我有以下场景(这只是实际场景的一个示例,因为实际代码很多)。
::实体
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 }
我的问题是如何向控制器发布数据在表单中的模型数组?
【问题讨论】:
-
一个好问题...我将编辑我的问题以包含该信息。
-
你真的在任何地方写信给
stuffItems吗?stuff是什么?关于 javascript 代码的其他一些注释:要检查数组是否有任何内容,您可以执行if (array.length)。要将项目添加到数组中,您可以执行array.push(item) -
抱歉,是的,它说的是 stuff[stuff.length],它应该说的是 stuffItems[stuffItems.length]。并感谢 js 信息...我会做出这些改变。
标签: javascript jquery ajax asp.net-mvc-4 controller