我正在使用 ASP.net。

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

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

我查看了 PageMethods,由于某种原因它不起作用,并发现很多其他人都遇到了麻烦。

有帮助吗?

解决方案

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

其他提示

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

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

扩展以下观点 @阿扎姆, ,如果您不想在页面上呈现 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top