Да, это очень хороший способ для достижения этой цели.Он использует JavaScriptSerializer
для сериализации вашей модели в объект JSON и обеспечения надлежащего экранирования.
В качестве альтернативы, если вы используете AJAX, вы можете напрямую вызвать действие контроллера, возвращающее JSON:
public ActionResult Foo()
{
var model = FetchTheModel();
return Json(model, JsonRequestBehavior.AllowGet);
}
, а затем с помощью jquery использовать это действие:
$.getJSON('<%= Html.Action("Foo") %>', function(result) {
alert(result.Prop1);
});