Считать результат PageMethod в jQuery-скрипт - PullRequest
0 голосов
/ 12 марта 2010

Я новичок в jQuery и пытаюсь зачитать результат PageMethod в мой скрипт jQuery. У меня установлен ScriptManager и следующий WebMethod:

[WebMethod(EnableSession = true)]
    public static string CheckSystemDefault(string _id)
    {
        int id = Convert.ToInt16(_id);
        addressTypeRepository = new AddressTypeRepository();

        AddressType addressType = addressTypeRepository.GetById(id);

        if (addressType.IsSystemDefault == true)
            return "IsSystemDefault";
        else
            return "IsNotSystemDefault";
    }

Я использую это, чтобы проверить, имеет ли объект свойство IsSystemDefault.

В скрипте я передаю идентификатор из URL и хочу оценить результат:

var id = $(document).getUrlParam("id");
var check = PageMethods.CheckSystemDefault(id);
if (check == "IsSystemDefault") {
...
}
if (check == "IsNotSystemDefault") {
...
}

Но в результате переменная "check" не определена. Что я должен изменить?

Ответы [ 2 ]

0 голосов
/ 16 марта 2010

Синтаксис в моем jQuery-скрипте был неверным.

Должно быть следующее:

<script type="text/javascript">

    jQuery(document).ready(function() {

        var id = $(document).getUrlParam("id"); 

        PageMethods.CheckSystemDefault(id, function(result) {
            if (result == "IsSystemDefault")
                // do something
            else
                // do something
        });

    });    

</script>
0 голосов
/ 12 марта 2010

Вы должны включить методы страницы в диспетчере скриптов. Вы указали EnablePageMethods = "true" в элементе диспетчера сценариев, как показано в последнем атрибуте ниже?

<ajaxToolkit:ToolkitScriptManager runat="Server"
    EnableScriptGlobalization="true"
    EnableScriptLocalization="true"
    ID="ScriptManager1"
    EnablePageMethods="true"/>
...