Spring.net + Nhibernate + JQuery Ajax вызов веб-метода в codebehind - PullRequest
0 голосов
/ 28 января 2011

Я пытаюсь сделать jquery ajax-вызов статического метода в файле codebehind.Проблема в том, что ArtistManager, внедренный в Spring, не является статичным, и я не могу использовать его в статическом веб-методе.Я ищу любые идеи о том, как реализовать это

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);
    }

Ответы [ 2 ]

1 голос
/ 30 января 2011

Предполагая один контекст, в котором настроен IArtistManager с именем artistManager:

using Spring.Context.Support;
// ...
[WebMethod]
public static IList<App.Data.BusinessObjects.Artist> GetArtists()
{
  IApplicationContext context = ContextRegistry.GetContext(); // get the application context
  IArtistManager mngr = (IArtistManager)context.GetObject("artistManager"); // get the object
  return mngr.GetAll("Name", "ASC", 1, 100, out rowCount);
}

Обратите внимание, что этот код также не будет компилироваться, поскольку rowCount является членом экземпляра, аналогично artistManager в вашем вопросе.

0 голосов
/ 29 января 2011

Не знаю насчет весны, но я уверен, что она имеет что-то вроде структуры карты.

ObjectFactory.GetInstance<IAristManager>.GetAll();
...