gpt4 book ai didi

ajax - MVC 3 AJAX Post,列表填充了对象,但对象属性为空

转载 作者:行者123 更新时间:2023-12-03 22:24:54 25 4
gpt4 key购买 nike

我有以下问题:

单击按钮后,我将一些数据发布到服务器。我的 Controller 操作如下所示:

public ActionResult Accept(List<MyViewModel> entries)
{
//here entries HAS 2 MyViewModel-Instances in it.
//The entries are not null, but the values of the instances are!
//entries[0].ParamA is null
}

MyViewModel 看起来像这样:

public class MyViewModel
{
public string ParamA { get; set; }
public string ParamB { get; set; }
}

AJAX 调用如下:

var myEntries = { entries: [{ ParamA: "A", ParamB: "B" }, { ParamA: "C", ParamB: "D" }] };

$.ajax({
type: 'POST',
url: url,
cache: false,
data: myEntries,
dataType: 'text' });

我已经尝试过的事情:

  • 将数据类型更改为“json”
  • 使用:传统:true
  • 尝试过 var myEntries = JSON.stringify(...);
  • 尝试过 var myEntries = { items : [JSON.stringify({ ... }), JSON.stringify({ ... })] };
  • 与上面相同,但使用 jQuery.param(..., true);
  • 使用 IEnumerable 或 MyViewModel[] 代替列表。
  • 上述任意组合

我在这里做错了什么?

提前非常非常感谢您对我的帮助!

编辑

我的(Razor) View 目前并不有趣,因为它与任何事情都无关。我没有使用任何 HTML.TextBoxFor (或类似)方法来填充 myEntries-Variable。它实际上是动态填充的(因为有很多很多条件)。为了这个问题(以及我自己的测试),我对变量进行了硬编码。 :)

最佳答案

根据您的回答和使用 JSON.stringify 方法,它对我有用

var myEntries = { entries: [{ ParamA: "A", ParamB: "B" }, 
{ ParamA: "C", ParamB: "D" }] };

$.ajax({
type: 'POST',
url: '/{controller}/{action}',
cache: false,
data: JSON.stringify(myEntries),
dataType: 'json',
contentType: 'application/json; charset=utf-8'
});

关于ajax - MVC 3 AJAX Post,列表填充了对象,但对象属性为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101896/

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