ASP.Net 核心 - 获取 post 表单的所有数据

ASP.Net Core - Get All data of a post form

我想保存一个表单的所有数据。

我的表格有这些元素-

(使用Postman Plugin

我的控制器是这样的-

[HttpPost]
public async Task<IActionResult> Insert(IFormCollection data)
{
    return Ok(data);
}

所以,我得到了这样的东西-

[
  {
    "key": "user_id",
    "value": [
      "'12'"
    ]
  },
  {
    "key": "title",
    "value": [
      "123"
    ]
  },
  {
    "key": "text[]",
    "value": [
      "werwer",
      "ghj"
    ]
  }
]

我想获取 texts 的值。

所以,对于这种情况-

"werwer",
"ghj"

所以,我试过这样的东西-

foreach (string description in data["text"])
{
    // description => empty
}

也尝试过这个-

data.text

还有-

data->text

但对我没有任何作用。

有人可以帮忙吗?

在此先感谢您的帮助。

为什么不遍历每个键,如果键是 "text",则获取值。由于该值是逗号分隔的字符串,您可以对其调用 Split 方法以获取包含 2 个项目(来自示例输入)的数组。

foreach (string description in data.Keys)
{
    if (description.Equals("text"))
    {
        var v = data[description];
        var stringItems = v.Split(',');
        foreach (var stringItem in stringItems)
        {
          //do something with stringItem
        }
    }
}

顺便说一句,密钥应该是 text,而不是 text[]。即使您有多个具有相同名称 "text" 的输入字段,当您提交时,它也将是一个键 ("text"),其中包含 2 个值 属性

{
    "key": "text",
    "value": [
      "werwer",
      "ghj"
    ]
  }