Sono uno sviluppatore Java nuovo su .NET. Sto lavorando a un progetto .Net MVC2 in cui voglio avere una vista parziale per avvolgere un widget. Ogni oggetto widget JS ha un oggetto dati JSON che verrà popolato dai dati del modello. Quindi metodi per aggiornare questi dati associati agli eventi quando i dati vengono modificati nel widget o se tali dati vengono modificati in un altro widget. Il codice è qualcosa di simile.ASP.NET MVC: Come convertire View Model in oggetto 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>
Quello che non so è come inviare i dati su come SomeModelView e poi essere in grado di utilizzare che per popolare il widget e convertirlo in Json. Mi sembravano dei modi molto semplici per farlo nel controller ma non nella vista. Immagino che questa sia una domanda di base che sto cercando da poche ore di fare questa chiazza di petrolio.
So che questa è una vecchia questione. Ma ad oggi ci sono modi migliori per farlo. Non mischiare JSON in linea con il tuo risultato di visualizzazione. JSON è facilmente serializzabile tramite AJAX e può essere trattato come oggetti. Qualunque cosa in JavaScript dovrebbe essere separata dalla vista. È possibile restituire facilmente i modelli senza alcuno sforzo tramite un controller. – ppumkin