2017-09-03 8 views
2

私は、Web API MVCを使用してWebサービスのメソッドを持って、私はこの方法を「作成」している、これは、2つのパラメータ(オブジェクト)を受信しますが、私は、SOAP UIからこのメソッドを呼び出すしようとすると、このエラーが表示さ:web apiサービスで複数のパラメータを送信するにはどうすればよいですか?

{ "message": "Error.", "exceptionMessage": "No se pueden enlazar varios parámetros ('modelPerson' y 'modelCategory') al contenido de la solicitud.", "exceptionType": "System.InvalidOperationException", "stackTrace": " en System.Web.Http.Controllers.HttpActionBinding.ExecuteBindingAsync(HttpActionContext actionContext, CancellationToken cancellationToken)\r\n en System.Web.Http.Controllers.ActionFilterResult. }

マイコントローラのAPI:

{ 
    "name": "pepe", 
    "age": 23, 
    "address" : "xxxx 233" 
    "pets":{        //-> person model 
    "id": 3002, 
    "alias" : "vovi" 
    } 
} 
, 
{ 
    "id" : 101       //category model (i need only id) 
} 

しかし、私は一つのパラメータのみ(modelPersonまたはcategoryPerson)を送信する場合、コールは完璧に動作し、BU:石鹸UI POSTメソッドで

[HttpPost] 
    [Route("Create")] 
    public IHttpActionResult Create(Person modelPerson, Category modelCategory) 
    { 
     try 
     { 
      new PersonBLL().Create(modelPerson, modelCategory); 
      return Ok("success"); 
     } 
     catch (Exception ex) 
     { 
      return BadRequest(ex.Message); 
     } 
    } 

2つのパラメータを使用しています。/

+0

:次のようになります要求に

public class CreateParameters { public Person Person { get; set; } public Category Category { get; set; } } 

[HttpPost] [Route("Create")] public IHttpActionResult Create(CreateParameters parameters) { try { new PersonBLL().Create(parameters.Person, parameters.Category); return Ok("success"); } catch (Exception ex) { return BadRequest(ex.Message); } } 

代わりに、次の2つをラップ単一のオブジェクトを使用することができます一つのクラスの 'Person'と' Category'は助けてください –

答えて

1

これはWeb APIでは許可されていません。両方を組み合わせる

{ 
    "Person": { 
     "name": "pepe", 
     "age": 23, 
     "address": "xxxx 233", 
     "pets": { 
      "id": 3002, 
      "alias": "vovi" 
     } 
    }, 
    "Category": { 
     "id": 101 
    } 
} 
関連する問題