Невозможно отправить данные с c# (контроллер) на javascript - PullRequest
1 голос
/ 06 мая 2020

У меня есть этот код в моем JavaScript файле:

temp="string";
var myJson = JSON.stringify(temp);
    $.ajax(
        {
            url: '/MemoryGame/updateStatus',
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: myJson,
            success: function (response) {
                alert("success");
                if (response == 'Okay') {
                    checkStatus(temp.myID);
                }
               else {
                    ConnectionChanged();
                }
            },
            error: function (errorThrown) {
                console.log(errorThrown);
                ConnectionChanged();
            }
        });

И этот контроллер:

[HttpPost]
        public string updateStatus(string updatedJson)
        {

            var Player = JsonConvert.DeserializeObject<GameDataClass>(updatedJson);
            var Opponent = JsonConvert.DeserializeObject<GameDataClass>(System.IO.File.ReadAllText(System.IO.Path.Combine(_env.WebRootPath, Player.OpponentID + ".json"))); 
... }

Я пытался изменить метод $. ajax на $ .post , также изменено

publi c string updateStatus

на

publi c JsonResult updatedStatus

Но ничего из этого не сработало. мой Json на javascript содержит данные, но когда он достигает обновленного контроллера, Json пуст. У меня никогда не было такого опыта, поэтому я использую этот код из другого проекта, и он там очень хорошо работает. Так может кто-нибудь подсказать мне, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020
    temp="string";
    // (0)
    var myJson = JSON.stringify(temp);
    $.ajax(
        {
            url: '/MemoryGame/updateStatus?updatedJson=' + temp, // (1)
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: '',   // (2)
            success: function (response) {
                alert("success");
                if (response == 'Okay') {
                    checkStatus(response.myID);
                }
               else {
                    ConnectionChanged();
                }
            },
            error: function (errorThrown) {
                ConnectionChanged();
            }
        });

Или, если это не нужно передавать в качестве параметра, выполните следующие действия: (0) var formData = new FormData (); formData.append ('обновлено Json', temp); (1) url: '/ MemoryGame / updateStatus', (2) data: formData,

0 голосов
/ 06 мая 2020

$. ajax - это функция из библиотеки jQuery, есть ли она в вашем проекте?

Вы также можете проверить консоль Javascript своего браузера, чтобы увидеть если он содержит ошибки. На Firefox и Chrome вы можете получить к нему доступ, нажав F12.

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