私はAngularJSアプリケーションからのリクエストを処理する安らかなWebAPIアプリケーションを持っています。 GET動詞を必要とするコントローラーアクションは正常に動作しますが、コンテンツを返さないPOST/PUTのアクションはNullreference例外をスローします。WebAPIコントローラがバックグラウンドで例外をスローする
例:
[HttpPut]
public void Update()
これは私の関数実行戻った後、次のメッセージを表示します。
System.NullReferenceException: Object reference not set to an instance of an object. <SendAsync>d__0.MoveNext
また、クライアントへのHTTPステータスコード204を返します。単にステータスコード200が動作しません復帰
[HttpPut]
[Route("")]
public async Task<object> Update(ProfileViewModel model)
{
_profileManager.Update(model);
return Ok(new {});
}
注:非同期であると期待どおりに動作する空のオブジェクトを返すためにメソッドシグネチャを変更することにより
。一部のコンテンツも返される必要があります。そうでない場合は、例外がスローされます。
これは、DELETEを含むGETではないすべての要求で発生します。どのように私は署名を変更せずにすべての単一のメソッドの匿名オブジェクトを返すことなくこれを修正できますか?
1.Pleaseは、あなたの更新方法の周りにあなたのコードのビットより多くを共有しています。 2.カスタムフォーマッター/モデルバインダーを使用していますか? – Gurpreet
完全なUpdate()メソッドで質問を更新しましたが、わかりますように、それはあまり効果がありません。フォーマッタについて、はい - 私はカスタムJsonのシリアライズにフォーマッタを使用します。 –
[NullReferenceExceptionとは何か、それを修正するにはどうすればいいですか?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) ) – Igor