Práticas recomendadas para passar dados do asp.net-mvc para o javascript
Eu tenho trabalhado com ASP.NET MVC e Javascript / jQuery muito ultimamente e parece que estou indo em uma direção onde eu estou sempre precisando passar algum valor dinâmico "para" meu javascript. Quando o script está bem na página, eu fiz algo assim:
var isEditable = <%=ViewData["editable"]%>
Eu gosto de como isso é rápido e fácil e apenas como eu injetar um valor em HTML. Mas isso cheira. Realmente, muito ruim. E isso quebra o intellisense e a formatação de código do Visual Studio, dificultando a leitura e a compreensão de meus scripts.
Ocorreu-me outra solução seria passar meus dados para um campo oculto e ter a referência de JavaScript que ...
<input type="hidden" id="editable" value="<%=ViewData["editable"]%>" />
var isEditable = $("#editable").attr("value");
Isso é provavelmente muito melhor, pois mantém o script intacto e me permite movê-lo para um arquivo .js externo. Mas algo sobre essa solução também não parece ideal. Ou é só comigo?
Alguém pode recomendar soluções e melhores práticas para passar dados para seus scripts? Eu estou indo para o caminho errado se meus scripts acabam confiando fortemente no viewdata dos meus controllers em primeiro lugar?