如何通过AJAX调用方法而不会导致页面呈现?

时间:2008-09-15 22:28:36

标签: asp.net ajax asp.net-ajax

我正在使用ASP.net。

我试图调用我正在使用的页面的基类上存在的方法。我想通过Javascript调用此方法,并且不需要ASP.net处理任何渲染。

什么是最简单的方法来实现这一目标。

我看过PageMethods,由于某些原因它没有工作,发现很多其他人都遇到了麻烦。

4 个答案:

答案 0 :(得分:2)

这取决于方法所依赖的内容,但假设它是静态方法或者它不依赖于页面生命周期来工作,您可以公开Web服务端点并使用您想要的任何Javascript调用机制来命中它使用

答案 1 :(得分:1)

您使用什么库来进行Ajax调用?如果您使用的是JQuery,那么您可以创建静态方法并在页面上调用它们。如果您需要进一步的帮助,请告诉我们!

答案 2 :(得分:0)

正如Thunder3建议的那样,公开一个Web服务。完成此操作后,您可以使用ScriptManager(或ScriptManagerProxy)注册Web服务,这将导致生成JavaScript包装器。这个包装器为您提供了一个良好的调用接口。

答案 3 :(得分:0)

要扩展@Azam所做的点,如果你不想在页面上呈现html,你可以将返回类型设置为其他内容,例如xml,并像我一样做一个response.write在下面的代码中。在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