【问题标题】:ASP.Net Core - Get All data of a post formASP.Net Core - 获取帖子表单的所有数据
【发布时间】:2016-12-29 03:49:58
【问题描述】:

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

我的表单有这些元素-

(使用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

但对我没有任何作用。

有人可以帮忙吗?

提前感谢您的帮助。

【问题讨论】:

    标签: asp.net asp.net-mvc arraylist multidimensional-array asp.net-core-1.0


    【解决方案1】:

    为什么不遍历每个键,如果键是“文本”,则获取值。由于该值是逗号分隔的字符串,因此您可以对其调用 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"),其 value 属性中有 2 个项目

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

    【讨论】:

      猜你喜欢
      • 2019-07-16
      • 2021-09-17
      • 1970-01-01
      • 2018-03-05
      • 2020-06-05
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多