gpt4 book ai didi

asp.net-mvc - 使用 JSON、JQuery 将复杂对象数组发布到 ASP.NET MVC Controller

转载 作者:行者123 更新时间:2023-12-01 00:05:22 28 4
gpt4 key购买 nike

我知道这个问题之前已经被讨论过,例如在这里:

How to post an array of complex objects with JSON, jQuery to ASP.NET MVC Controller?

但解决方案似乎不适合我的问题。

这是我的 HTML。行数是可变的:

 <table id="workPlanTable">
<tr>
<th>
Begin
</th>
<th>
End
</th>
</tr>

<tr itemId="1">
<td><input class="begin" id="begin_1" name="begin_1" type="text" value="5:30" /></td>
<td><input class="end" id="end_1" name="end_1" type="text" value="11:30" /></td>
</tr>
<tr itemId="3">
<td><input class="begin" id="begin_3" name="begin_3" type="text" value="5:30" /></td>
<td><input class="end" id="end_3" name="end_3" type="text" value="7:30" /></td>
</tr>

</table>

JS 构建一个对象数组并将它们发送到控制方法:

<script type="text/javascript">
$(function() {

submitForm = function() {
var items = new Array();
$("#workPlanTable tr").each(function(i) {
var end = $(this).find(".end").val();
var begin = $(this).find(".begin").val();
var item = {
"Begin": begin,
"End": end
};
items.push(item);

});
var postData = {
myItems: items
};

$.ajax({
url: '~/WorkPlan/AjaxUpdate',
type: 'POST',
dataType: 'json',
data: postData,
contentType: 'application/json; charset=utf-8',
success: function(result) {
alert(result.Result);
}
});
}
})
</script>

每一行代表一个 WorkPlanItem。

我的目标是将它们全部发布到我的 Controller 以进行更新。

我似乎无法弄清楚如何在我的 Controller 方法(AjaxUpdate)中访问数组。

最佳答案

您可以将表单序列化为 Vikas posted ,或者您可以使用 stringify function如果您希望浏览页面(就像您当前所做的那样)并使用 postData数组。

在 Controller 上,您需要处理 json 字符串。您可以使用 System.Web.Script.Serialization.JavaScriptSerializer class反序列化它。如果您有一个映射到您传递的数据的对象,则可以使用 Deserialize方法。如果不这样做,您仍然可以使用DeserializeObject ,但是这会给你一个 Dictionary<string, string>您必须遍历该集合才能获取数据。不太有趣(相信我),但它确实有效。

关于asp.net-mvc - 使用 JSON、JQuery 将复杂对象数组发布到 ASP.NET MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/760249/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com