具有多个参数的发布方法

时间:2018-07-10 05:24:40

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

我无法使用MVC Web API中的Post方法在数据库中插入多行。我已经为此编写了代码,但是当我通过邮递员插入多行进行测试时,它给出了错误。在第一行,变量“ delegatetable”由于出现错误而显示为null。我没有通过实体框架进行数据库连接,而是创建了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
    }
]

1 个答案:

答案 0 :(得分:1)

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

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