В последнее время я много работал с ASP.NET MVC и Javascript/jQuery, и я, кажется, направляюсь в направлении, где мне всегда нужно передать какое-то динамическое значение "в" мой javascript. Когда script прав на странице, я сделал что-то вроде этого:
var isEditable = <%=ViewData["editable"]%>
Мне нравится, как это быстро и просто и так же, как я бы ввел значение в HTML. Но это пахнет. Действительно, очень плохо. И он разбивает Visual Studio intellisense и форматирование кода, что делает мои скрипты трудными для чтения и понимания.
Мне пришло в голову другое решение - передать мои данные в скрытое поле и иметь ссылку на Javascript, которая...
<input type="hidden" id="editable" value="<%=ViewData["editable"]%>" />
var isEditable = $("#editable").attr("value");
Это, вероятно, намного лучше, поскольку он сохраняет целостность script и позволит мне переместить его во внешний .js файл. Но что-то в этом решении тоже не кажется идеальным. Или это только я?
Можно ли рекомендовать решения и рекомендации по передаче данных в ваши скрипты? Могу ли я возглавить неправильный путь, если мои сценарии в конечном итоге сильно полагаются на viewdata из моих контроллеров?