gpt4 book ai didi

javascript - 在具有复杂数组的 Controller 中绑定(bind) MVC 模型

转载 作者:行者123 更新时间:2023-11-29 15:44:48 25 4
gpt4 key购买 nike

我的大部分模型都是使用 $('form').serializeArray() 填充的,但是需要从其管理器填充形成分页网格的对象数组。例如:

public JsonResult SubmitForm(MyViewModel input)
{

...

public class MyViewModel
{
[Display(Name = "Name")]
public string GridName { get; set; }

[Display(Name = "Description")]
public string GridDescription { get; set; }

public GridRow[] GridRows { get; set; }

serializeArray() 会获取名称和描述,没有问题。如果 GridRow 是一个 string[],那么它接受我简单地将多个实例推送到它到 jquery 生成的序列化数组中:

var data = $('form').serializeArray();
for (var i in gridData) {
data.push({ name: 'GridRows', value: gridData[i].id });
}
$.ajax({
type: "POST",
url: '/Central/Results/SubmitForm',
dataType: "json",
data: data,

这样我至少可以获得一组 ID。但是,当我想要填充正确的数据类型时,它不允许我将整个对象插入其中 (gridData[i])。当它到达 Controller 时,我总是得到一个空值。

知道我需要如何处理数据以便 MVC 正确填充模型吗?谢谢。

最佳答案

我很确定这与必须在您的 Ajax 帖子中将 traditional 选项设置为 true 有关。就何时将数组发布到 MVC Controller 操作而言,jQuery 处理数组的方式与您预期的略有不同。

那么这样做:

$.ajax({
type: "POST",
url: '/Central/Results/SubmitForm',
dataType: "json",
traditional: true,
data: data,
...

参见 this answer了解更多详情。

关于javascript - 在具有复杂数组的 Controller 中绑定(bind) MVC 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383761/

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