В случае успешного вызова 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, который позволяет тесту работать так, как я хочу, но JSON, отправленный обратно в ответе AJAX, представляет собой беспорядок, , как подробно описано в этом вопросе .
[{"Key":"Success","Value":true}]
Есть ли простой, чистый способ добиться того, что кажется простым, или это единственный способ реализовать некоторую настраиваемую сериализацию, как в связанном вопросе?