Вызов функции Javascript и возвращение значения из ASP .NET

Допустим, на моей странице у меня есть такая функция:

 function ReturnFoo(bar)
 {
   return bar.toString() + "foo";
 }

Теперь я хотел бы, чтобы это вызывалось из ASP .NET, надеюсь, с фреймворком ASP .NET AJAX, поскольку я уже использую его в этой кодовой базе (я уже потратил 100k, может также использовать).

Кроме того, я хотел бы вернуть результат, возвращаемый этой функцией, а затем назначить его переменной, созданной на стороне сервера. И это ограничено ASP .NET 2.0.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
15 417
8

Ответы 8

Я не понимаю, как вы ожидаете, что серверный код вызовет клиентскую функцию ???

Вызовы AJAX выполняются со стороны клиента на сторону сервера!

Мэтт, я знаю, что это можно сделать с помощью Silverlight, но я хотел знать, возможно ли это с asp .net без Silverlight. С silverlight я могу напрямую получить DOM, я не знал, возможно ли это в asp .net.

RyanKeeter 07.10.2008 22:38

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

Чтобы вызвать функцию со стороны сервера, просто зарегистрируйте какой-нибудь сценарий запуска, и он запустится при отображении страницы.

Если вы намерены повторно использовать некоторые функции как на стороне сервера, так и на стороне клиента, я бы предложил написать эту функцию на стороне сервера (aspx или asmx) и вызвать ее со стороны клиента (JavaScript) с помощью AJAX. Не уверен, ищете ли вы это.

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

Это действительно то, что вы хотите сделать, поскольку ваш предлагаемый сценарий будет означать как минимум два постбэка.

Какая у этого цель? Было бы лучше, если бы вы могли оставить это у клиента.

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

Я должен сказать, что это решение - отстой, но другого пути я не знаю. Надеюсь, у кого-то будет лучшее решение.

В первом ответе Мэтт упомянул, что это невозможно (выполнить код на стороне клиента, пока он еще находится на сервере). И это правда.

Ваш комментарий о silverlight не совсем точен. Silverlight не может вызвать код на стороне клиента с сервера. Silverlight работает на клиенте точно так же, как JavaScript, так что это вызов от клиента к клиенту.

Не могли бы вы немного прояснить сценарий ... Думаю, вы спрашиваете вот о чем:

private void Page_Load()
{
    string someValue = EXECUTE_JS_ON_CLIENT_AND_GET_RESULT();

    // do some stuff here while still on the server...
}

Если это то, что вы хотите сделать, это невозможно. Находясь на сервере, вы не можете общаться с клиентом.

Вы это имели в виду?

Спасибо, -Тимоти

Напишите просто, где нужно вызывать javascript

Response.Write ( "предупреждение ('привет');")

В некоторых случаях это работает (и вам также нужно Response.Write окружающие теги <script>), но я столкнулся с проблемами, когда ASP выдает мне ошибки, когда я пытаюсь писать на клиентскую страницу, когда задействован Post-Back. .

Ogre Psalm33 17.04.2009 01:03

Я хотел бы проверить JSON.Net (в сочетании с библиотекой [jQuery также бесплатен]), это решения с открытым исходным кодом, которые значительно упрощают эти проблемы.

Другие вопросы по теме