Проверьте IsPostBack во внешнем файле Javascript - PullRequest
2 голосов
/ 04 февраля 2012

Из внешнего файла Javascript мне нужно проверить на IsPostBack (страница ASP.NET). Вот что я нашел после поиска в Google:

var isPostBack = <%= Page.IsPostBack ? "true" : "false" %>;

Но <%= %> не распознается во внешнем файле JS. Если да, то каково альтернативное решение?

Ответы [ 5 ]

3 голосов
/ 04 февраля 2012

Вы не сможете сделать это из внешнего файла. Даже если вы можете, внешние файлы кэшируются в браузере клиента, и они не извлекаются каждый раз. Возможно, вы сможете разместить функцию на странице и вызвать ее из внешнего скрипта.

Внешний скрипт

if(isAPostBack)
{
//run code
}

Страница ASPX (скрипт в заголовке)

var isAPostBack = <%= Page.IsPostBack %>;

Просто убедитесь, что ваш внешний скрипт загружается после указанной выше строки на странице.

3 голосов
/ 04 февраля 2012

Для обработки ASP-кода необходимо иметь расширение файла, сопоставленное с dll ASP в IIS.

Простейшим случаем здесь будет переименование файла .js с расширением .aspx, а затем изменение атрибута src вашего <script> элемента.

Либо создайте глобальную переменную isPostBack на странице aspx, а затем вызовите файл js, в котором содержится ее использование, например:

<script type="text/javascript">
    var isPostBack = <%= Page.IsPostBack ? "true" : "false" %>;
</script>
<script type="text/javascript" src="/js/myscript.js"></script> <!-- <- script that uses isPostBack -->
0 голосов
/ 04 февраля 2012

Вы можете визуализировать это variable только через страницу aspx, пользовательский элемент управления или главную страницу, используемые на странице.

0 голосов
/ 04 февраля 2012

Это не будет работать в файле Javascript, поскольку Сервер будет обслуживать его как таковой и не будет распознавать теги asp. Вы можете сделать это, однако, из файла ASPX, и это будет работать. Вы также можете использовать универсальный обработчик.

Удачи!

0 голосов
/ 04 февраля 2012

Нельзя использовать нотацию <%= %> во внешнем файле JavaScript; это не сработает.

...