Преобразование массива в JSON и передача его в asmx - PullRequest
2 голосов
/ 03 мая 2010

Я пытаюсь использовать JSON.stringify() (из json2.js из json [dot] org), чтобы преобразовать массив JavaScript в строку JSON и передать его веб-методу asmx. Я использую jQuery AJAX.

Вызов достигает веб-метода, где я беру список <Object> в качестве параметра, но я получаю список пустой в режиме отладки.

Моя строка JSON выглядит хорошо сформированной со всеми данными, я даже пытался иметь одинарные кавычки и двойные кавычки (экранированные) вокруг «имен» строки JSON. Пожалуйста, помогите.

Ответы [ 3 ]

5 голосов
/ 03 мая 2010
[WebMethod]
public void SomeMethod(List<object> param)
{
 ....
}

Примет строку JSON, которая выглядит следующим образом:

'{"param": ["xx", "zz", "yy"]}'

Итак, попробуйте что-то вроде этого:

var data = JSON.stringify({param: myarray});
0 голосов
/ 03 января 2012

Я нашел решение вашей проблемы

Решение prashiddha.com.np

            <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

            <html xmlns="http://www.w3.org/1999/xhtml">
            <head runat="server">
            <title></title>

            <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
            <script type="text/javascript">
                var url = '<%=ResolveUrl("~/WebService.asmx/HelloWorld")%>';
                $(document).ready(function() {
                    $('#txtAutoSuggest').keyup(function() {
                    var str = $("#txtAutoSuggest").val();
                    var a = JSON.stringify({ name: str });
                    CallService(a);
                });
            });

            function CallService(a) {
            $.ajax({
                type: "POST",
                url: url,
                data: a,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(data, status) {
                $('#lblResult').text(data.d);
            },
            error: Error
            });
            }

            function Error(request, status, error) {
                $('#lblResult').text("Not Matched");
            }
            </script>
            </head>
            <body>
            <form id="form1" runat="server">
            <div>
            <asp:TextBox ID="txtAutoSuggest" runat="server"></asp:TextBox>
            <asp:Label ID="lblResult" Text=" " Width="100%" runat="server" />
            </div>
            </form>
            </body>
            </html>
0 голосов
/ 27 сентября 2010

http://haacked.com/archive/2010/04/15/sending-json-to-an-asp-net-mvc-action-method-argument.aspx

Эта ссылка также помогла мне, потому что я искал модель для передачи данных json.

В качестве дополнительной заметки я пытался использовать $ .post (...), но мне не повезло, пока я не разбил его на вызов $ .ajax и не указал тип содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...