我正在向WebApi方法發佈對象。我使用PostAsJsonAsync
來做到這一點。PostAsJsonAsync後的WebApi方法中的對象null
public async Task<HttpResponseMessage> PostAsync(string token, ServiceCall call)
{
var client = new HttpClient();
client.SetBearerToken(token);
var response = await client.PostAsJsonAsync(Uri + "id/nestedcall", call);
return response;
}
對象call
說我路過不爲空,當我將它張貼。
[HttpPost]
[Route("id/nestedcall")]
public async Task<IHttpActionResult> NestedCall([FromBody]ServiceCall call)
{
// call is null here
}
但是它在我的API方法中爲空。我似乎無法解決爲什麼我所遵循的所有例子都使用這種格式。
爲什麼調用對象不能被web api拾取?
編輯
這裏是ServiceCall
對象。它位於單獨的類庫中,並且Web應用程序和API中都包含引用。
public class ServiceCall
{
public ServiceCall(Service service, string grantType)
{
ClientId = service.Id;
ClientSecret = service.Secret;
Uri = service.Uri;
Scope = service.Scope;
GrantType = grantType;
}
public ServiceCall(string clientid, string clientsecret, string uri, string scope, string grantType)
{
ClientId = clientid;
ClientSecret = clientsecret;
Uri = uri;
Scope = scope;
GrantType = grantType;
}
public string ClientId { get; set; }
public string ClientSecret { get; set; }
public string Uri { get; set; }
public string Scope { get; set; }
public string GrantType { get; set; }
}
您能否粘貼異常消息。然而,看起來你的模型綁定不起作用 – Arsene
也在調試模式下運行它,並進入代碼,你會發現更多關於你正在發送的數據 – Arsene
他沒有得到一個異常消息,只是接收null,發生在我身上幾次,它可能有不同的原因。既然你說方法的相同簽名在其他情況下有效,我會問你是否發送和接收完全相同的sams類型,或者只是具有相同名稱的類,但是在不同的命名空間中。如果第二個變體,請檢查您是否將TypeNameHandling設置爲auto或全部,我想在Global配置中,如果我還記得的話。 – meJustAndrew