J'ai beaucoup travaillé avec ASP.NET MVC et Javascript/jQuery ces derniers temps et je semble me diriger dans une direction où je dois toujours passer une valeur dynamique "à" mon javascript. Lorsque le script est juste dans la page, je l'ai fait quelque chose comme ceci:Meilleures pratiques pour passer des données d'asp.net-mvc à javascript
var isEditable = <%=ViewData["editable"]%>
J'aime comment cela est facile et rapide & comme j'injecter une valeur en HTML. Mais ça sent. Vraiment, vraiment mauvais. Et cela rompt l'intellisense et le formatage de code de Visual Studio, rendant mes scripts difficiles à lire et à comprendre.
Il m'a eu une autre solution serait de transmettre mes données à un champ caché, et avoir la référence Javascript que ...
<input type="hidden" id="editable" value="<%=ViewData["editable"]%>" />
var isEditable = $("#editable").attr("value");
Ceci est probablement beaucoup mieux car il conserve intact le script et me permettrait de le déplacer vers un fichier .js externe. Mais quelque chose à propos de cette solution ne semble pas idéal non plus. Ou est-ce juste moi?
Quelqu'un peut-il recommander des solutions & les meilleures pratiques pour transmettre des données dans vos scripts? Suis-je sur la mauvaise voie si mes scripts finissent par s'appuyer fortement sur les viewdata de mes contrôleurs?
Que diriez-vous de "tirer" les données du modèle dans une sorte de magasin de données dans le contrôleur avec AJAX? – Janie
Je pense que AJAX serait exagéré dans le type de cas dont je parle ... Mes scripts ont généralement juste besoin de connaître quelques bits de données du contrôleur/modèle (les données qui sont déjà présentes sur l'exécution de la page initiale) émettre un autre rappel de réseau un contrôleur semble un peu beaucoup. –