我需要使用 jquery ajax
以及普通 javascript
调用文件后代码中的 Web 方法
我可以使用 asp.net PageMethods
来完成此操作,也可以使用 asp.net MVC(调用 Controller 方法)来完成此操作。
使用页面方法
就像这样
PageMethods.MethodName(...);
我知道如何调用 WCF 服务
或 WebService
中的方法,但我需要从 javascript
或Jquery
我该怎么做?
我已经在 Web Method
上尝试了 [WebMethod]
,它是静态的,但不起作用。我需要 Get
和 Post
解决方案
最佳答案
正如您所说,您确实需要用 [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/