0

次のような jQuery 呼び出しがあり、多くの問題が発生します。

  $('#submit').click(function () {
        var url = "/home/start";
        var notifyEmail = $("#notify_email").val();
        var receiverPhone = $("#receiver_phone").val();
        var sliderValue = $("#slider").slider("value");

        var dataToSend = '{phoneReceiver:' + receiverPhone + ', emailNotify:' + notifyEmail + ', value:' + sliderValue + '}';
        //var dataToSend = '{"phoneReceiver":"' + receiverPhone + '", "emailNotify":"' + notifyEmail + '", "value:"' + sliderValue + '"}';

        $.ajax({
            type: "POST",
            url: url,
            data: dataToSend,
            dataType: 'json',
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                alert('Awesome destination: ' + data.DestinationAddress);

            },
            error: function (date) {
                alert('An occurred while purchasing. Please try again later');
            }
        });
    });

データのフォーマットをいじってみました (2 つのバージョンがあることがわかります)、dataType と contentType の有無にかかわらず。まだ運がありません。

次の問題があります。

  • フォーマット エラーのように見える 500 Internal server error が表示される
  • FireBug では呼び出しは json として行われません。jsonタブを選択すると何もありませんが、投稿には

このため、Web サービス内のブレークポイントがヒットすることはありません。

データ内のすべてのパラメーターは問題ありません。

FireBug では、私の投稿が次のようになっていることがわかります。

{phoneReceiver:fgsdfg, emailNotify:dgsg, value:19}

または:

{"phoneReceiver":"gfjhfghj", "emailNotify":"fjhfgjhgj", "value:"16"}

ヒントはありますか?

4

3 に答える 3

1

これを試して...

$.ajax({
        type: "POST",
        url: url,
        data: { phoneReceiver: receiverPhone, emailNotify: notifyEmail,  value: sliderValue},
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            alert('Awesome destination: ' + data.DestinationAddress);

        },
        error: function (date) {
            alert('An occurred while purchasing. Please try again later');
        }
    });

ご挨拶。

于 2013-01-09T14:13:39.480 に答える
1

JSON を送り返す場合は、次のように dataToSend オブジェクトを作成してみてください。

    var dataToSend = {
           phoneReceiver: $("#receiver_phone").val(),
           emailNotify :$("#notify_email").val()
           value: $("#slider").slider("value")
    };
于 2013-01-09T14:15:47.333 に答える
1

次のようにコードを機能させることができました。

    //action
    [HttpPost]
    public void TestAction(string phoneReceiver, string emailNotify, int value)
    {
        //all variables set here
    }


    //in view i have a button id = submit
    $('#submit').click(function () {
            var dataToSend = '{phoneReceiver: "blah", emailNotify:"blah@blah.com", value: 1}';

            $.ajax({
                type: "POST",
                url: '/TestController/TestAction',
                data: dataToSend,
                dataType: 'json',
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    alert('Awesome destination: ' + data.DestinationAddress);

                },
                error: function (date) {
                    alert('An occurred while purchasing. Please try again later');
                }
            });
    });
于 2013-01-09T14:16:10.913 に答える