Я хотел бы вернуть JSON из моего контроллера, который был сгенерирован из анонимного типа и содержит тире в именах ключей. Это возможно?
Так что, если у меня есть это:
public ActionResult GetJSONData() {
var data = new { DataModifiedDate = myDate.ToShortDateString() };
return Json(data);
}
На стороне клиента я хотел бы, чтобы он поступил в сериализованное виде:
{ "data-modified-date" : "3/17/2011" }
Моя причина, по которой я этого хочу, заключается в том, что данные Json в конечном итоге станут атрибутами на узле DOM, и я хочу играть хорошо и использовать новые атрибуты данных HTML5. Я могу просто вернуть { modifieddate: "3/17/2011" }
и использовать его таким образом, но если я смогу стать немного более соответствующим стандартам, я бы хотел быть.
Я понимаю, что если я напишу свой собственный класс JsonResult
, который использует сериализатор WCF JSON для неанонимного типа, я могу использовать DataMemberAttribute
для этого. Но это слишком много для такого простого желания.
Я мог бы также заставить клиента массировать ключи для меня, как только он получит данные, но я также надеюсь избежать этого. В целом, я бы предпочел просто не следовать стандартам, чем любой из этих обходных путей.