Значение текстового поля на стороне сервера всегда пустая строка в случае веб-службы - PullRequest
1 голос
/ 27 декабря 2011

Я использую плагин toquInput jquery для автозаполнения. Этот скрипт работает нормально

<script type="text/javascript">
        $(document).ready(function () {
            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "/WebService1.asmx/HelloWorld7",
                data: "{}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) { $("#<%=demo.ClientID %>").tokenInput("http://shell.loopj.com/tokeninput/tvshows.php");
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(textStatus);
                }
            });
        });
    </script>

но когда я заменяю строку

$("#<%=demo.ClientID %>").tokenInput("http://shell.loopj.com/tokeninput/tvshows.php");

с

$("#<%=demo.ClientID %>").tokenInput(data.d);

это показывает автозаполнение, но в случае нажатия кнопки это показывает demo.Text в виде пустой строки. Я проверил ответ в firebug, и ответ

{"d":[{"__type":"TestForMySite.fb","Id":1,"name":"ALABAMA"},{"__type":"TestForMySite.fb","Id":2,"name":"ALASKA"}]}

1 Ответ

1 голос
/ 27 декабря 2011

Согласно документации , ваш JSON Array имеет неправильный формат.Это должно быть:

[
    {"id":"856","name":"House"},
    {"id":"1035","name":"Desperate Housewives"},
    ...
]

У вас есть Id, где оно должно быть id.

...