2016-09-21 9 views
0

私はコントローラのGetValues関数を作成して、複雑なモデルクラスであるdemoModelのインスタンスを返しました。Web API 2サービス - モデルオブジェクトが予期されるときにエラーメッセージを返す方法?

正常なデータセットを返すときにこれはうまく動作します。しかし、関数がdemoModelオブジェクトを予期しているときに、何かが検証されない場合、どのように私が呼び出し元にメッセージを送り返すのですか? Badrequest

Namespace Controllers 
    Public Class GetMyData 
     Inherits ApiController 

     'Note always expect 3 values coming in per the WebApiConfig 
     Public Function GetValues(ByVal age As String, ByVal state As String, ByVal country As String) As demoModel 

      Dim dm As New demoModel() 
      Dim myData As New createDemoData 

      dm = myData.getTotalData(age,state,country) 
      If Not dm.dataisvalid then 
       'TODO Send Error message to the user 
      End If 

      Return dm 

     End Function 

    End Class 
End Namespace 

答えて

1

変更モデルから関数の戻り値の型関数を呼び出すここで

は、コントローラのコードです応答メッセージは、その応答メッセージに必要なコンテキスト情報を持つペイロード。アクションの詳細については Action Results in Web API 2上に読む

+0

です。これは私が紛失したものです。これは完璧に動作し、リンクに感謝します。 –

1

だけを返す:IHttpActionResul

Namespace Controllers 
    Public Class GetMyData 
     Inherits ApiController 

     Public Function GetValues(ByVal age As String, ByVal state As String, ByVal country As String) As IHttpActionResult 

      Dim dm As New demoModel() 
      Dim myData As New createDemoData 

      dm = myData.getTotalData(age, state, country) 
      If Not dm.dataisvalid Then 
       return BadRequest("Return invalid data message to caller") 
      End If 

      Return Ok(dm) 'return Ok (200) response with your model in the body 

     End Function 

    End Class 
End Namespace 

.. 
      If Not dm.dataisvalid then 
       return BadRequest("Your error message") 
      End If 

      Return Ok(dm) 'need to wrap this with Ok 
+0

結果、私はこれを試してみましたが、私は、エラーメッセージが表示されます。型の値「BadRequestErrorMessageResultは」demoModelに変換することはできません。予想される戻り値の型はdemoModel –

関連する問題