ASP.Net Core - 获取帖子表单的所有数据

Posted

技术标签:

【中文标题】ASP.Net Core - 获取帖子表单的所有数据【英文标题】:ASP.Net Core - Get All data of a post form 【发布时间】: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

但对我没有任何作用。

有人可以帮忙吗?

提前感谢您的帮助。

【问题讨论】:

【参考方案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"
    ]
  

【讨论】:

以上是关于ASP.Net Core - 获取帖子表单的所有数据的主要内容,如果未能解决你的问题,请参考以下文章

在 ASP.NET CORE 表单中使用 AJAX 返回 JSON

Asp.Net MVC 5 Jquery 验证不适用于带有提交事件的 ajax 帖子,显示为有效表单

如何在 ASP.NET Core API 控制器中获取多个表的记录

ASP.NET Core:为 List 类型的模型属性创建表单输入

ASP.net MVC 列表框在帖子中获取所有值

JS+ASP Net Core 从控制器获取数据