Методы страницы в asp.net - PullRequest
       33

Методы страницы в asp.net

10 голосов
/ 30 ноября 2010

Моя реализация Pagemethod не работает в браузере Chrome. У меня есть веб-приложение ASP.NET 3.5, разработанное в VS 2008.

Код ниже не работает в Chrome или Safari:

function FetchDataOnTabChange(ucName)
{ 
    PageMethods.FetchData(ucName, OnSuccessFetchDataOnTabChange, OnErrorFetchDataOnTabChange);
}

function OnErrorFetchDataOnTabChange(error)
{   
   //Do something
}

function OnSuccessFetchDataOnTabChange(result)
{
   //Do something  
}

1 Ответ

26 голосов
/ 30 декабря 2010

Это должно работать во всех браузерах, выполнив следующие шаги:

  • Метод страницы должен иметь System.Web.Services.WebMethod приписывать. [WebMethod]
  • Метод страницы должен быть открытым. [WebMethod] публичный ...
  • Метод страницы должен быть статическим. [WebMethod] общедоступная статическая ...
  • Метод страницы должен быть определен на страница (встроенная или в код-сзади). Это не может быть определено в элементе управления, главной странице или базе стр.
  • ASP.NET AJAX Script Manager должен для EnablePageMethods установлено значение true.

Это из рабочего приложения

Страница aspx:

/* the script manager could also be in a master page with no issues */
<asp:ScriptManager ID="smMain" runat="server" EnablePageMethods="true" />
<script type="text/javascript">
    function GetDetails(Id) {
        PageMethods.GetDetails(doorId);
    }
</script>

код позади:

[System.Web.Services.WebMethod]
public static void GetDetails(string Id)
{

}
...