【问题标题】:Array inside JSON received emptyJSON 中的数组接收到空
【发布时间】:2019-09-13 13:07:57
【问题描述】:

当我从浏览器 (JavaScript) 向 ASP.NET MVC 后端提交包含一些基本类型和一个对象数组的表单时,我正在发送一个 JSON 对象,但是对象数组被反序列化为一个空数组 (列表,实际上)。

我已经使用 Chrome 的检查器检查了发送的内容,并且 JSON 以正确的值输出,所以我认为问题出在后端。

控制器动作:

[HttpPost]
public ActionResult FooAction(FooViewModel viewModel)
{
    //code
}

FooViewModel:

public class FooViewModel
{
    public List<BarViewModel> Bars { get; set; } // <-- What arrives empty, not null

    public int PrimitiveProperty { get; set; }

    public int OtherPrimitiveProperty { get; set; }

    public string LastPrimitiveProperty { get; set; }
}

BarViewModel:

public class BarViewModel
{
    public long LongProperty{ get; set; }

    public string StringProperty { get; set; }

    public bool BoolProperty { get; set; }
}

调试控制器动作时,Bars 为空(非空)。

这就是 Chrome 的检查器向我展示的内容:

LastPrimitiveProperty: SomeText
PrimitiveProperty: 1
OtherPrimitiveProperty: 9
Bars: [{"LongProperty":274,"StringProperty":"SomeString","BoolProperty":true},{"LongProperty":119,"StringProperty":"SomeString","BoolProperty":false},{"LongProperty":163,"StringProperty":"SomeString","BoolProperty":false}]

【问题讨论】:

  • 对我来说一切都很好
  • 尝试将 FromBody 添加到您的操作 FooAction。 (FooAction([FromBody]FooViewModel viewModel))

标签: javascript c# json asp.net-mvc


【解决方案1】:
[HttpPost]
public ActionResult FooAction([FromBody]FooViewModel viewModel)
{
   //code
}

试试这个,它应该会收集 json 对象

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2014-02-22
    • 2017-02-27
    相关资源
    最近更新 更多