首页 > 解决方案 > 具有多个参数的 Post 方法

问题描述

我无法使用 MVC Web API 中的 Post 方法在数据库中插入多行。我已经为它编写了代码,但是当我通过邮递员插入多行进行测试时,它给出了错误。在第一行,变量“delegatetable”显示为空,因为错误即将到来。我没有通过实体框架进行数据库连接,我创建了一个 DelegateTable 类。

public HttpResponseMessage Post(List<DelegateTable> delegatetable)
    {
        try
        {
            using (var delegateContext = new ShowContext())
            {

                foreach (DelegateTable item in delegatetable)
                {
                    DelegateTable delegates = new DelegateTable();
                    delegates.Salutation__c = item.Salutation__c;
                    delegates.First_Name__c = item.First_Name__c;
                    delegates.Last_Name__c = item.Last_Name__c;
                    delegates.Account_Name__c = item.Account_Name__c;
                    delegates.Contact_Email__c = item.Contact_Email__c;
                    delegates.Category__c = item.Category__c;
                    delegates.Conference_Type__c = item.Conference_Type__c;
                    delegates.Conference_Selection__c = item.Conference_Selection__c;
                    delegates.Payment_Statuss__c = item.Payment_Statuss__c;
                    delegates.Barcode__c = item.Barcode__c;
                    delegateContext.SaveChanges();
                }


                var message = Request.CreateResponse(HttpStatusCode.Created, delegatetable);
                message.Headers.Location = new Uri(Request.RequestUri.ToString());
                return message;
            }


        }
        catch (Exception ex)
        {

            return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex);
        }
    }

我传递的 Json 数据如下

[
    {
        "attributes": {
            "type": "Registration__c",
            "url": "/services/data/v43.0/sobjects/Registration__c/a3h8E0000009VuVQAU"
        },
        "Salutation__c": "Dr.",
        "First_Name__c": "Test",
        "Last_Name__c": "Test",
        "Account_Name__c": "Test",
        "Contact_Email__c": "test123@gmail.com",
        "Category__c": "Test",
        "Conference_Type__c": null,
        "Conference_Selection__c": null,
        "Payment_Statuss__c": null,
        "Barcode__c": "Test"
    },
    {
        "attributes": {
            "type": "Registration__c",
            "url": "/services/data/v43.0/sobjects/Registration__c/a3hD0000001kEfOIAU"
        },
        "Salutation__c": "Mr.",
        "First_Name__c": "Demo",
        "Last_Name__c": "Demo",
        "Account_Name__c": "Demo",
        "Contact_Email__c": "Demo@gmail.com",
        "Category__c": "Demo",
        "Conference_Type__c": null,
        "Conference_Selection__c": null,
        "Payment_Statuss__c": null,
        "Barcode__c": null
    }
]

标签: asp.net-mvcasp.net-web-api

解决方案


您可以尝试将有效负载重新格式化为 JSON 数组,因为问题可能是有效负载无法转换为列表。尝试这个:

{ 
   "delegates" : 
    [ 
     { 
      "attributes": ..., ...
     },
     { "attributes": ..., ...
     },
     ... 
    ] 
}

推荐阅读