2008-09-15 71 views
0

我正在使用ASP.net。

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

什么是最简单的方法来完成这一点。

我看了一下由于某种原因没有工作的PageMethods,发现很多其他人都遇到了麻烦。如何通过AJAX调用方法而不会导致页面渲染?

回答

2

它取决于方法依赖于什么,但假设它是一个静态方法,或者它不依赖页面生命周期来工作,那么您可以暴露一个web服务端点并使用您想要的任何Javascript调用机制使用。

1

您使用哪个库进行Ajax调用?如果您使用的是JQuery,那么您可以创建静态方法并在您的页面上调用它们。让我知道你是否需要进一步的帮助!

0

由于Thunder3建议,公开一个Web Service。完成此操作后,可以使用ScriptManager(或ScriptManagerProxy)注册webservice,这将生成JavaScript包装器。这个包装为您提供了一个良好的通话接口。

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 
相关问题