香山乐天 2023-10-09 16:54 采纳率: 66.7%
浏览 10

c# 参数为list<model>字段的接口不知道怎么传值

c# 调用FromForm的api 后台模型的List<>字段接收不到数据

public class sendDDexpenseCs
{ 
    public List<Dictionary<string, string>> invoiceForm { get; set; }  
}  

接口
[HttpPost]
public object cs([FromForm] sendDDexpenseCs ex)
{ return ex;}

img

img

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-10-09 17:11
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    根据您提供的代码和描述,有几个可能导致后端接收不到数据的原因:

    1. 请求头设置:确保您发送的请求的Content-Type设置为application/x-www-form-urlencoded,这样后端才能正确解析表单数据。您可以使用HttpClient或其他方式发送请求时设置请求头。

    2. 参数命名:确保您发送的请求中的参数名与后端模型类的属性名一致。在您的示例代码中,参数名应为shouKuanRens[0].businessIdshouKuanRens[0].procInstId,其中[0]表示列表中的索引。

    3. 参数格式:确保您发送的请求中的参数格式符合application/x-www-form-urlencoded的要求。您可以使用HttpClient或其他方式发送请求时,将参数以键值对的形式进行编码。

    下面是一个示例,演示了如何使用HttpClient发送具有列表属性的表单数据:

    using System;
    using System.Collections.Generic;
    using System.Net.Http;
    using System.Threading.Tasks;
    
    class Program
    {
        static async Task Main()
        {
            var httpClient = new HttpClient();
    
            var formData = new Dictionary<string, string>
            {
                { "shouKuanRens[0].businessId", "123" },
                { "shouKuanRens[0].procInstId", "456" }
            };
    
            var content = new FormUrlEncodedContent(formData);
    
            var response = await httpClient.PostAsync("your-api-url", content);
    
            if (response.IsSuccessStatusCode)
            {
                var result = await response.Content.ReadAsStringAsync();
                Console.WriteLine(result);
            }
            else
            {
                Console.WriteLine("Request failed.");
            }
        }
    }
    

    在上述示例中,您需要将your-api-url替换为您实际的API端点URL。然后,根据您的模型和参数命名,将键值对添加到formData字典中。最后,通过PostAsync方法发送请求,并获取响应。

    请确保在发送请求时,按照上述示例的方式设置请求头和参数命名,以便正确传递列表属性的数据到后端。

    希望这能帮助到您!


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 修改了问题 10月13日
  • 创建了问题 10月9日

悬赏问题

  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22
  • ¥15 R语言中lasso回归报错