Вызов Кода ASP.NET Позади функции от JavaScript

Действительно ли возможно назвать ASP.NET codebehind функцией от JavaScript.

6
задан John Saunders 2 October 2012 в 19:18
поделиться

4 ответа

да, вы можете создать веб-метод, например ..

<WebMethod(EnableSession:=True), ScriptMethod()> _ 
Public Shared Function updateContent() As String
      Return "Your String"
    End Function

, а затем вызывать в JavaScript, например ..

PageMethods.updateTabContent(parameterValueIfAny, onSuccessMethod,onFailMethod);

, это также необходимо добавить

<asp:ScriptManager ID="ScriptMgr" runat="server" EnablePageMethods="true">
                </asp:ScriptManager>
9
ответ дан 8 December 2019 в 05:54
поделиться

Нет, невозможно напрямую вызвать код ASP.NET за функцией из Javascript. Код ASP.NET выполняется на сервере в контексте рабочего процесса ASP.NET. Javascript выполняется на клиенте в контексте браузера клиента.

Единственный способ, которым Javascript мог запустить выполнение кода ASP.NET, - это сделать вызов AJAX из Javascript на сервер.

1
ответ дан 8 December 2019 в 05:54
поделиться

Вы можете использовать __ doPostBack для обратной передачи из javascript. Просто добавьте серверный элемент управления со свойством AutoPostBack и установите для него значение true.

См. Вызов __doPostBack в javascript

0
ответ дан 8 December 2019 в 05:54
поделиться

Я бы предпочел подход Мухаммада Ахтара PageMethod. Одно короткое замечание: вам не нужен менеджер сценариев. Менеджер сценариев генерирует для вас только методы прокси javascript. Если у вас уже есть JQuery на вашей странице, вы можете забыть о диспетчере сценариев и вместо этого написать что-то вроде этого на своей странице:

<script type ="text/javascript">
    $(document).ready(function() {
        $("#AjaxLink").click(function(e) {
            e.preventDefault();
            $.ajax({
                type: "POST",
                url: "YourPage.aspx/updateContent",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(result) {
                    $("#content").html(result.d);
                }
            });
        });
     });
</script>

это предполагает, что у вас есть ссылка с идентификатором AjaxLink на вашей странице, а также div с идентификатором контент, показывающий результат. Преимущество заключается в том, что вы экономите 30 КБ JavaScript по сравнению между jquery и внедренными скриптами, созданными диспетчером сценариев

9
ответ дан 8 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: