AJAX呼び出しが成功した場合、単純なオブジェクトを返したいSuccess = true
public ActionResult Foo(int id)
{
// ...
return Json(new {Success=true});
}
これは正常に動作し、JavaScript が受け取るオブジェクトは次のようになります
{ Success : true }
ただし、返されるオブジェクトは匿名型であるため、テストで次のことを行うことはできません (次のようなことはできません)。
var result = (JsonResult)controller.AddNote(id, message);
dynamic data = result.Data;
// Assert
Assert.That(data.Success, Is.EqualTo(true));
そのため、テストを希望どおりに機能させる ExpandoObject を返そうとしましたが、AJAX 応答で返された JSON は、この質問で詳しく説明されているように混乱しています。
[{"Key":"Success","Value":true}]
簡単だと思われることを達成するためのシンプルでクリーンな方法はありますか、それともリンクされた質問のようにカスタムシリアライゼーションを実装する唯一の方法ですか?