【发布时间】:2011-01-28 17:48:57
【问题描述】:
我正在尝试对代码隐藏文件上的静态方法进行 jquery ajax 调用。问题是 Spring 注入的 ArtistManager 不是静态的,我不能在静态 webmethod 中使用它。我正在寻找有关如何实现此功能的任何想法
ArtistList.aspx
$(document).ready(function () {
$("#Result").click(function () {
$.ajax({
type: "POST",
url: "ArtistList.aspx/GetArtists",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#Result").text(msg.d);
alert("Success: " + msg.d);
},
error: function (msg) {
// Replace the div's content with the page method's return.
$("#Result").text(msg.d);
alert("Error: " + msg.d);
}
});
});
});
ArtistList.aspx.cs
private IArtistManager artistManager;
public IArtistManager ArtistManager
{
set { this.artistManager = value; }
get { return artistManager; }
}
protected long rowCount = 0;
.
.
.
[WebMethod]
public static IList<App.Data.BusinessObjects.Artist> GetArtists()
{
//return ArtistManager.GetAll("Name", "ASC", 1, 100, out rowCount);
}
【问题讨论】:
-
为什么 GetArtists() 是一个静态方法?
-
知道了 - 需要静态才能允许 ASP.NET AJAX 回调到 ASPX 页面中的 Web 方法,请阅读 here
-
SO上有一个类似的问题:stackoverflow.com/questions/2133194/…
标签: asp.net jquery ajax nhibernate spring.net