【问题标题】:Post List of list of string from Javascript to controller将字符串列表从 Javascript 发布到控制器
【发布时间】:2018-01-06 21:49:24
【问题描述】:

这是我尝试发布的 JSON 数据:

{
  "UploadText": [       
    [
      "Stamp Duty+Rgst",
      "Extra on actuals (approximately @ 5.9%)",
      "4.90%",
      "",
      "688,225",
      "",
      "",
      "688,225"
    ],
    [
      "share certificate",
      "250",
      "",
      "",
      "250",
      "",
      "",
      "250"
    ],
    [
      "Legal charges",
      "Lumpsum (Approx 10 - 20k)",
      "",
      "",
      "",
      "",
      "18,000",
      "18,000"
    ],
    [
      "TOTAL",
      "",
      "",
      "",
      "16,122,863",
      "",
      "5,564,372",
      "21,687,235"
    ]
  ]
}

这是我的控制器方法:

public void UploadText(UploadItem uploadItem)
        {

        }

这是真正的课程:

 public class UploadItem
    {
        public List<string[]> UploadText { get; set; }
    }

我正在尝试使用 Angular 发布数据并且请求已正确发送。但是模型绑定没有正确发生。我在UploadItem 中的UploadText 始终为NULL。如果我更改为 List&lt;List&lt;string&gt;&gt; 它仍然是 NULL。我做错了什么?

【问题讨论】:

  • 好的,找到了。我忘了放 [FromBody]。看来这是 API 中很酷的新关键字。如果没有模型绑定似乎不起作用。我已经修好了。

标签: javascript c# asp.net json asp.net-web-api


【解决方案1】:

在您的 JSON 更改中:

"UploadText":

"uploadItem":

因为这是预期的参数,看下面:

public void UploadText(UploadItem uploadItem)

【讨论】:

  • 但是uploadItem里面的item叫做uploadText。这就是我使用uploadText的原因
  • 是的,但您的函数需要一个名为:UploadItem 类型的 UploadItem 的参数。您可以将 UploadText(UploadItem uploadItem) 更改为 UploadText(UploadItem UploadText)
  • 我改了但是没有预期的效果。
  • 请看我的评论。
猜你喜欢
  • 2019-09-08
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 2014-04-28
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多