J'ai travaillé avec ASP.NET et MVC Javascript/jQuery beaucoup ces derniers temps et j'ai l'impression d'être à la tête dans une direction où je suis toujours à la recherche d'une valeur dynamique "à" mon javascript. Lorsque le script est à droite de la page, j'ai fait quelque chose comme ceci:
var isEditable = <%=ViewData["editable"]%>
J'aime la façon dont c'est rapide et facile et tout comme je l'avais injecter une valeur en HTML. Mais cette odeur. Vraiment, vraiment mauvais. Et il se casse intellisense de Visual Studio et de mise en forme du code, en faisant mes scripts dur à lire et à comprendre.
Il a eu pour moi une autre solution serait de passer à un champ caché, et avoir la référence Javascript qui...
<input type="hidden" id="editable" value="<%=ViewData["editable"]%>" />
var isEditable = $("#editable").attr("value");
C'est probablement beaucoup mieux comme ça maintient le script intacte et me permettrait de le déplacer vers un externe .fichier js. Mais quelque chose au sujet de cette solution ne semble pas idéal. Ou est-ce juste moi?
Quelqu'un peut-il recommander des solutions et meilleures pratiques pour le passage des données dans vos scripts? Suis-je dirigé dans la mauvaise voie si mes scripts en fin de fortement dépendante de la viewdata de mon contrôleurs en premier lieu?