Soy un desarrollador de Java nuevo en .NET. Estoy trabajando en un proyecto .Net MVC2 donde quiero tener una vista parcial para envolver un widget. Cada objeto del widget JS tiene un objeto de datos JSON que se completará con los datos del modelo. Luego, los métodos para actualizar estos datos se vinculan a los eventos cuando los datos se cambian en el widget o si esos datos se cambian en otro widget. El código es algo como esto.ASP.NET MVC: Cómo convertir el modelo de vista en el objeto Json
myController
virtual public ActionResult DisplaySomeWidget(int id)
{
SomeModelView returnData = someDataMapper.getbyid(1);
return View(myview, returnData);
}
myview.ascx
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SomeModelView>" %>
<script type="text/javascript">
//creates base widget object;
var thisWidgetName= new Widget();
thisWidgetName.updateTable= function() {
// UpdatesData
};
$(document).ready(function() {
thisWidgetName.data = <% converttoJSON(model) %>
$(document).bind('DATA_CHANGED', thisWidgetName.updateTable());
});
</script>
<div><%:model.name%></div>
Lo que no sé es cómo enviar los datos a través de como SomeModelView y luego ser capaz de utilizar eso para poblar el widget, así como convertir eso a Json. Parecía que había algunas maneras realmente simples de hacerlo en el controlador pero no en la vista. Me imagino que esta es una pregunta básica que he estado haciendo durante unas horas tratando de hacer esta astilla.
Sé que esto es una cuestión de edad. Pero a partir de hoy hay mejores formas de hacerlo. No mezcle JSON en línea con el resultado de su Vista. JSON es fácilmente seriales a través de AJAX y se puede tratar como objetos. Cualquier cosa en JavaScript debería estar separada de la Vista. Puede devolver modelos fácilmente sin ningún esfuerzo a través de un controlador. – ppumkin