ASP.NET MVC サイトの複数のページで奇妙な問題が発生しています。フォームを POST し、モデルが有効でない場合、エラーを確認できるように同じビューを返そうとしますが、ページがリロードされる代わりに、ファイルが「アプリケーション/json」形式で。以下のコードからわかるように、コントローラー メソッドは JsonResult ではなく ActionResult を返します。
[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
var isValid = IsUserAuthenticated(model);
if (isValid)
{
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return User.IsInRole("Administrator")
? RedirectToAction("Index", "Admin")
: RedirectToAction("Index", "Home");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
フォームに入力せずに送信すると、モデルが (正しく) 検証に失敗することがわかりますが、最後の行に到達すると "return View(model);" になります。-期待するすべてのHTMLを返しますが、コンテンツタイプは「application / json」に設定されています。コードのどこにも content-type を設定していないため、なぜこれが発生するのかわかりません。他のページでも同じようなことが起きているので、何か根本的なところが間違っているのではないかと思っていますが、よくわかりません。
何かご意見は?