Обработка выражений ASP.NET внутри внешнего файла Javascript - PullRequest
0 голосов
/ 28 августа 2009

Как лучше всего использовать выражения ASP.NET во внешнем файле Javascript?

В настоящее время я использую среду ASP.NET MVC, и мне нужно сделать что-то похожее на следующее из внешней ссылки JS:

jQuery(document).ready (function () {
    jQuery ("#element<%= Model.IdFromAThing %>").click (... blah ...
});

Я мог бы переместить это в представление, конечно, но я бы хотел оставить его отдельно.

приписка

Одним из преимуществ этого является то, что я могу повторно использовать один и тот же файл JS во многих местах, я действительно не хочу повторять логику инициализации в каждом представлении (учитывая, что оно будет идентичным).

Ответы [ 2 ]

2 голосов
/ 28 августа 2009

Я не думаю, что это возможно, если вы не измените свой IIS для обработки файлов .js как ASP.NET.

Внешние js-файлы не обрабатываются ASP.NET, они просто отправляются веб-клиенту. Таким образом, невозможно использовать выражения ASP.NET внутри файла .js, если вы не возитесь с конфигурацией IIS и не измените ее для обработки файлов .js так же, как и для файла ASP.NET.

С другой стороны, вы можете переименовать ваш файл .js в .aspx, а затем использовать его в качестве значения js src. Затем он будет обработан с использованием ASP.NET до отправки его клиенту. Вам просто нужно убедиться, что в выводе нет автоматически сгенерированного HTML-кода (только javascript).

1 голос
/ 28 августа 2009

Джим правильный, чтобы файл JS содержал динамическое содержимое, вам понадобится механизм ASP.NET для его анализа / обработки.

Другая идея состоит в том, чтобы немного изменить то, что вы делаете. Создайте свои JS-файлы для принятия (динамических) параметров с вашей динамической страницы, которую можно вставить. Например, ваш пример может быть переписан следующим образом:

В вашем статическом файле JS:

function setItUp(idFromAThing) {
    jQuery(document).ready (function () {
        jQuery ("#element" + idFromAThing).click (... blah ...
    });
}

А в вашем ASP.NET View:

<script type="text/javascript" src="whatever.js"> </script>
<script type="text/javascript">
setItUp(<%= Model.IdFromAThing %>);
</script>

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...