Получить данные из контроллера действий в Jquery HttpPost или Get - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь получить значение calcul в моем контроллере действий, который я назвал действием через ajax httpPost.Я хочу получить значение моего исчисления и поместить его в деление.но я не знаю, нужно ли мне использовать HttpPost или HttpGet. Или, может быть, я сделал что-то плохое.

function calcul() {
            $.ajax({
                url: '/Pokedex/calcul/',
                type: 'POST',
                dataType: "html",
                success: function (capture) {
                    console.log('Calcul HttpPost ok');

                    $('#captureTitle').removeClass('text-hide');
                    //enlever la classe pour afficher le contenu de la div
                    $('#captureTxt').removeClass('text-hide');

                    //vider le contenu de la div
                    $("#captureTxt").empty();
                    //écrire dans la div
                    $("#captureTxt").append(capture);

                },
                error: function () {
                    console.log('Erreur Calcul');
                }
            })

        }

Мой контроллер:

 public IActionResult Calcul()
        {
            if (TempData["pokemonRateJsonTemp"] == null || TempData["pokemonBballTemp"] == null)
            {
                return null;
            }
            //Rate du pokemon sélectionné
            var pokemonRateJsonTempString = TempData["pokemonRateJsonTemp"].ToString();
            var PokemonRateDeserialized = JsonConvert.DeserializeObject(pokemonRateJsonTempString);
            var rate = Convert.ToInt32(PokemonRateDeserialized);

            //        //bball est le Bonus Ball de la Ball utilisée : 1 pour une Poké Ball, 1,5 pour une Super Ball, 2 pour HyperBall et 255 pour Master Ball
            //        var bball = 1;
            var pokemonBballJsonTempString = TempData["pokemonBballTemp"].ToString();
            var PokemonBballDeserialized = JsonConvert.DeserializeObject(pokemonBballJsonTempString);
            var bBall = Convert.ToDouble(PokemonBballDeserialized);

            //bstatut est le bonus du statut :
            //1 si le statut du Pokémon n'est pas altéré,
            //1,5 s'il est paralysé, empoisonné ou brûlé,
            //2 s'il est endormi ou gelé ;
            var bStatut = 1;

            //Calcul de la valeur
            var a = (1 - 2D / 3D * 100 / 100) * rate * bBall * bStatut;

            //        Si le résultat de a est supérieur ou égal à 255 alors le pokémon est directement capturé!
            if (a >= 255)
            {
                var capture = "100% de chance capture !";
                return RedirectToAction("Index", capture);
            }
            else
            {
                //calcule de 2^16
                var pow1 = Math.Pow(2, 16);

                //calcule de 2^8
                var pow2 = Math.Pow(2, 8);

                //calcule  de a/2^8-1
                var aDivPow2 = a / (pow2 - 1);

                //calcule de racine 4(a/2^8-1)
                var racine4aDivPow2 = Math.Pow(aDivPow2, 1D / 4D);

                //calcul de b
                var b = (pow1 - 1) * racine4aDivPow2;

                //calcul de probabilités que l'un des quatres nombres aléatoire tiré par le jeu sois inférieur a b
                var p1 = (b + 1) / 65535;

                //probabilité pour qu'ils le soient tous les quatre, c'est-à-dire que le Pokémon soit capturé.
                var p = Math.Pow(p1, 4);

                var pourcentage = p * 100;

                //arondissement de la valeur à 0.00
                var pourcentageArondi = Math.Round(pourcentage, 3);

                return RedirectToAction("Index", pourcentageArondi);
            }
        }

Результат моей проблемы

..........................................................................................................

1 Ответ

0 голосов
/ 20 сентября 2019

Кажется, вы просто возвращаете одно значение со стороны сервера после пост-запроса ajax.Вы можете использовать JsonResult:

public IActionResult Calcul()
{

    ....//Your logic

    return new JsonResult(pourcentageArondi);

}

Клиентская сторона:

success: function (capture) {
    console.log('Calcul HttpPost ok');

    $('#captureTitle').removeClass('text-hide');
    //enlever la classe pour afficher le contenu de la div
    $('#captureTxt').removeClass('text-hide');

    //vider le contenu de la div
    $("#captureTxt").empty();
    //écrire dans la div
    $("#captureTxt").append(capture);

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