He estado trabajando mucho con ASP.NET MVC y Javascript/jQuery últimamente y parece que voy en una dirección en la que siempre necesito pasar un valor dinámico "a" mi javascript. Cuando el script se encuentra en la página, lo que he hecho algo como esto:Mejores prácticas para pasar datos de asp.net-mvc a javascript
var isEditable = <%=ViewData["editable"]%>
me gusta como esta es rápida y fácil & al igual que me inyecto un valor en el HTML. Pero esto huele. Realmente, realmente malo. Y rompe el intellisense y el formato de código de Visual Studio, lo que hace que mis guiones sean difíciles de leer y entender.
Se me ha ocurrido otra solución sería pasar mis datos a un campo oculto, y tienen la referencia de Javascript que ...
<input type="hidden" id="editable" value="<%=ViewData["editable"]%>" />
var isEditable = $("#editable").attr("value");
Ésta es probablemente mucho mejor, ya que mantiene intacto el guión y me permitiría moverlo a un archivo .js externo. Pero algo sobre esta solución tampoco parece ideal. O solo soy yo?
¿Alguien puede recomendar soluciones & mejores prácticas para pasar datos a sus scripts? ¿Me dirijo por el camino equivocado si mis guiones terminan confiando en los datos de vista de mis controladores en primer lugar?
¿Qué tal "extraer" datos del modelo en algún tipo de almacén de datos en el controlador con AJAX? – Janie
Creo que AJAX sería excesivo en el tipo de casos al que me refiero ... Mis scripts usualmente solo necesitan saber unos pocos bits de datos del controlador/modelo (datos que ya están presentes en la ejecución inicial de la página) de modo para emitir otra llamada de red un controlador parece demasiado. –