プロジェクト:ASP MVC 4は、.NET 4.0フレームワークの下で実行されている:戻りMvc.JsonResultはプラス設定Response.StatusCode
VS 2010のExpressのもとでアプリケーションを実行している(または私のローカルマシン上に展開し、IIS 7.5の下で実行されている)場合にはアクションから(擬似)結果以下
[HttpPost]
public ActionResult PostWord(Model model)
{
....
Response.StatusCode = 400;
Return new JsonResult { data = new {fieldName = "Word", error = "Not really a word!" } };
を期待(私は行動に差がないと、のContentTypeと化するJsonResultオブジェクトのContentEncodingプロパティが割り当てられている)
展開がウェブ上に移動されるように動作しますホスト(IIS 7を使用)火かき棒は、応答が期待どおりであることを伝えています(400)が、応答にJSONはありません(つまり、テキストはありません)。私はアクションからライン
Response.StatusCode = 400;
を削除する場合は、JSONは完全に対応して形成されているが、もちろん、応答ステータスコードがかかりJavaScriptと適切な関数呼び出しに干渉され、200(OK)です。
何が起こっているのか、これを修正する方法についてのご意見はありますか?ありがとうございます
なぜ400を返すのですか?これはちょうどフレンドリーなエラーメッセージのエラーページではありません – TGH
http://stackoverflow.com/questions/6123425/rest-response-code-for-invalid-data多分私は物事を別々にすべきですが、JSONは関係なく返されます - レスポンスコードは、JSONで何をすべきかを知るために、ポストバック関数の情報を提供します。 200 to meは、「要求に応じて更新されたデータベース」を意味します。 – Brent
HTTPステータスコード – TGH