2017-08-21 8 views
1

私はHTTPコンテンツの交渉が、何かの流れに慣れ以下で場違い思わパース:私は、次のと.NETのWEBAPIコントローラを持って.NET WebAPIのではない[FromBody]適切要求内容から

コンテンツ:フィドラーを使用

/// <summary> 
    /// Search for Records corresponding to the given criterias 
    /// </summary> 
    [AcceptVerbs("POST")] 
    public async Task<IHttpActionResult> SearchRecord([FromBody]SearchPeopleModel recordSearchModel) 
    { 
     var recordService = Context.Services.Get<IRecordService>(); 
     var result = await recordService.SearchRecord(recordSearchModel); 
     return Jsonify(result); 
    } 

は、要求内容は次の通りである:WEBAPIをデバッグする際

POST http://localhost:43465/api/Record/SearchRecord HTTP/1.1 
Host: localhost:43465 
Connection: keep-alive 
Content-Length: 72 
Pragma: no-cache 
Cache-Control: no-cache 
Accept: application/json 
Origin: (hidden) 
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36 
Content-Type: application/json 
Referer: http://localhost:43465/ 
Accept-Encoding: gzip, deflate, br 
Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 
Cookie: ASP.NET_SessionId=(hidden) 

{"Any":"mat","Firstname":"","Lastname":"","Birthname":"","PatientId":""} 

得recordSearchModelがNULLです。 ボディコンテンツとJSON.stringifyで再生しようとしましたが、これは問題ではありません。

私は何かが欠けているに違いありませんが...私はどこに見えません!誰かが助けることを願っています!

EDIT:ここではsearchPeopleModelクラスをリクエストしてください。 RecordServiceの実装については、ここでの質問とは関係がないので、私は示しません。

public class SearchPeopleModel 
{ 
    public string Any {get; set;} 
    public string Firstname { get; set; } 
    public string Lastname { get; set; } 
    public string Birthname { get; set; } 
    public DateTime? BirthDate { get; set; } 
    public Guid? PatientId { get; set; } 
} 

私は不明であったかもしれないとしていくつかの精度:意図したとおりのASP.NET Web APIが要求を受信したときrecordSearchModelがnullの場合、コードの残りの部分は完全に機能します。

+0

RecordServiceコードを提供できますか。 –

+0

同じモデルクラスと同じ、コードは私のために働く。 –

+0

SearchPeopleModelクラスを表示できますか? –

答えて

0

これを最後に掘り下げます。

SearchPeopleModelからパラメータ

public Guid? PatientId { get; set; } 

はasp.netのWEBAPIにより、デフォルトでは非直列化することはできません表示されます。そのような行動が機能するために 我々は送信する必要があります:

{"Any":"mat","Firstname":"","Lastname":"","Birthname":""} 

の代わりに:

{"Any":"mat","Firstname":"","Lastname":"","Birthname":"","PatientId":""} 

原因: は "" 有効なヌルのGuidになっBUすることはできません。 [some-valid-guid]は動作します。

誰かを助けてくれることを願っています。

関連する問題