Как вызвать метод через AJAX, не вызывая вообще рендеринга страницы?

StackOverflow https://stackoverflow.com/questions/67621

  •  09-06-2019
  •  | 
  •  

Вопрос

Я работаю с ASP.net.

Я пытаюсь вызвать метод, существующий в базовом классе для страницы, которую я использую.Я хочу вызвать этот метод через Javascript и не требую, чтобы ASP.net обрабатывал какой-либо рендеринг.

Какой был бы самый простой способ добиться этого.

Я просмотрел PageMethods, которые по какой-то причине не работают, и обнаружил, что у многих других людей с ними были проблемы.

Это было полезно?

Решение

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

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

Какую библиотеку вы используете для вызовов Ajax?Если вы используете JQuery, вы можете создавать статические методы и вызывать их на своей странице.Дайте мне знать, если вам нужна дополнительная помощь!

Как предлагает Thunder3, откройте веб-службу.После этого вы можете зарегистрировать веб-сервис с помощью ScriptManager (или ScriptManagerProxy), что приведет к созданию оболочки JavaScript.Эта оболочка предоставляет вам хороший интерфейс для вызова.

Продолжая тему, высказанную @Азам, если вы не хотите отображать HTML на странице, вы можете установить тип возвращаемого значения на что-то другое, например xml, и выполнить ответ. Напишите, как я это сделал в коде ниже.Во время GET я хочу отправить обратно html, но во время POST я отправляю обратно некоторый XML по проводу.

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Cache.SetCacheability(HttpCacheability.NoCache)
        If Request.HttpMethod = "GET" Then
            'do some work and return the rendered html
        ElseIf Request.HttpMethod = "POST" Then
            'do some work and return xml
            Response.ContentType = "text/xml"
            Response.Write("<data></data>")
            Response.End()
        Else
            Response.StatusCode = 404
            Response.End()
        End If
    End Sub
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top