如何通过AJAX调用方法而不导致页面完全呈现?
时间:2020-03-05 18:54:42 来源:igfitidea点击:
我正在使用ASP.net。
我正在尝试为我正在使用的页面调用基类上存在的方法。我想通过Javascript调用此方法,并且不需要ASP.net处理任何呈现。
什么是最简单的方法来做到这一点。
我查看了由于某种原因无法使用的PageMethods,发现很多其他人在使用它们时遇到了麻烦。
解决方案
回答
它取决于该方法所依赖的内容,但是如果假定它是静态方法或者不依赖Page Lifecycle来工作,则可以公开一个Web服务终结点并使用我们希望使用的任何Javascript调用机制来实现该终结点。
回答
我们正在使用哪个库进行Ajax调用?如果使用的是JQuery,则可以创建静态方法并在页面上调用它们。让我知道我们是否需要进一步的帮助!
回答
正如Thunder3建议的那样,公开一个Web服务。完成此操作后,可以向ScriptManager(或者ScriptManagerProxy)注册Web服务,这将导致生成JavaScript包装器。该包装器为我们提供了良好的呼叫接口。
回答
为了扩展@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