如何在web api中执行多个post参数?

时间:2015-04-28 01:38:00

标签: entity-framework-6 asp.net-web-api

我的SQL DB,JT和Sales中有一个web-api,2个表。在我向数据库添加()之前,我需要海报在uri中首先指定他/她是否要发布到JT表或Sales。我的问题是我的post方法只接受一个模型绑定,它不需要两个像我下面的代码所示。它没有错误,但是当我记住这个逻辑时,它在POSTMAN中返回一个错误,它不能将多个参数('JT'和'Sales')绑定到请求的内容。

这是我的代码:

[ResponseType(typeof(JT))]
public HttpResponseMessage PostJT(JT JT, Sales Sales, [FromUri] string tran)
        {
            try
            {
                if (ModelState.IsValid)
                {
                 if (tran == null)
                            {
                                return Request.CreateResponse(HttpStatusCode.Unauthorized, "Unauthorized Access!");
                            }
                            else
                            {
                                switch (tran)
                                {
                                    case "JT": db.JTs.Add(JT); 
                                        break;
                                    case "sales": db.Sales_.Add(Sales);
                                        break;
                                }
                            }
                            db.SaveChanges();
                            return Request.CreateErrorResponse(HttpStatusCode.OK, "Added!");
                        }
//below are just elses with return messages.

1 个答案:

答案 0 :(得分:0)

没有直接传递多个参数的方法,但您可以使用以下解决方法

此链接提供有关Web API passing Multiple parameter

的完整详情
    $.ajax(
    {
        url: "samples/PostAlbum",
        type: "POST",
        contentType: "application/json",
        data: JSON.stringify({ JT: jt, Sales: sales, UserToken: userToken }),
            success: function (result) {
            alert(result);
        }
    });



        [HttpPost]
        public string PostAlbum(JObject jsonData)
        {
          try
            {
                if (ModelState.IsValid)
                {
                 if (tran == null)
                            { 
                          return Request.CreateResponse(HttpStatusCode.Unauthorized,
                           "Unauthorized Access!");
                            }
                            else
                            {
                               dynamic json = jsonData;
                               JObject jtObject = json.JT;
                               JObject salesObject = json.Sales; 

                               var jt = jtObject.ToObject<JT>();
                               var sales = salesObject.ToObject<Sales>();

                                if (jt != null)
                                {
                                   db.JTs.Add(JT); 
                                }
                                 else if (sales != null)
                                {
                                    db.Sales_.Add(Sales);
                                } 
                            }
                            db.SaveChanges();
                    return Request.CreateErrorResponse(HttpStatusCode.OK, "Added!");
           }
  //below are just elses with return messages. 
        }