javascript - 在代码隐藏中调用 Web 方法

标签 javascript c# jquery asp.net .net

我需要使用 jquery ajax 以及普通 javascript 调用文件后代码中的 Web 方法

我可以使用 asp.net PageMethods 来完成此操作,也可以使用 asp.net MVC(调用 Controller 方法)来完成此操作。

使用页面方法就像这样

 PageMethods.MethodName(...);

我知道如何调用 WCF 服务WebService 中的方法,但我需要从 javascriptJquery

我该怎么做?

我已经在 Web Method 上尝试了 [WebMethod],它是静态的,但不起作用。我需要 GetPost 解决方案

最佳答案

正如您所说,您确实需要用 [WebMethod] 属性修饰的静态方法。已经有一段时间了,但这里是我在旧项目中使用的一些代码的示例:

$.ajax({
    type: "POST",
    url: "AjaxBridge.aspx/GetPatientInfo",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: "{'personID':'" + personID + "'}",
    success: function (data) {
    }
});

我们有一个名为 AjaxBridge.aspx 的专门页面,它除了处理这样的 ajax 调用之外什么也不做(我个人不喜欢这个设计)。您也可以将它们直接嵌入到当前页面或用户控件中。只需确保引用相对于当前页面或绝对路径的正确路径。

被调用的实际服务代码如下所示:

[WebMethod]
public static PersonItem GetPatientInfo(int personID)
{
    ...
}

为了支持 HTTP GET,您可能需要将以下属性添加到您的服务方法中:

[ScriptMethod (UseHttpGet = true)]

当然,将ajax jquery方法类型更改为GET

关于javascript - 在代码隐藏中调用 Web 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330567/

相关文章:

c# - 将不确定数量的子句动态添加到 Linq 2 Sql 查询的正确方法是什么?

javascript - 比较 ScrollTop 与元素的 offset.top

jquery - 即时在keydown()上重放音频

javascript - 绑定(bind)列表未显示在 Knockout.js 的 html 查看源代码中?

c# - Dispatcher线程和UI线程有什么区别

javascript - 有没有办法通过链接变量名来访问 typescript 中的子对象

c# - asp.net如何打开新标签页

javascript - 在 jQuery 每个循环中推送到一个数组

javascript - 无法在外部 javascript 中访问本地变量

javascript - 如果模型包含使用 findWhere 存在的键,则返回 Backbone 模型