我试图通过ajax调用传统ASP.Net WebForm代码隐藏页面中托管的WebMethod。以下是WebMethod的代码:
[WebMethod]
public static object States()
{
StateProvince[] states = new StateProvince[] { };
ApplicationServiceClient proxy = null;
try
{
proxy = new ApplicationServiceClient();
states = proxy.GetStateProvinces();
}
finally
{
CloseServiceProxy(proxy);
}
return states;
}
WebMethod在我的独立开发环境中运行得很好,或者如果正常部署到IIS,但是当我将aspx页面部署到Sitefinity时,在调用时会出现以下异常:
“/”应用程序中的服务器错误。
未知的网络方法States.aspx。
参数名称:methodName
我不确定Sitefinity是否正在劫持该网址并将“.aspx”发布后期或此处发生的事情。
这是调用web方法的jquery调用:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Regions.aspx/States",
data: "{}",
success: function(data) {
// implementation omitted
},
error: function(xhr, msg) {
alert(xhr.responseText);
}
});
我可以通过使用Fiddler手动发布请求来复制问题。
同样,除了部署到Sitefinity之外,这在任何地方都可以正常工作。有人有什么想法吗?
答案 0 :(得分:0)
Sitefinity运行的是什么版本的.NET?页面方法是最近添加的。
答案 1 :(得分:0)
使用 dataType:“json”,