Открытый URL после успеха в функции ajax в ядре asp.net - PullRequest
0 голосов
/ 19 октября 2019

Я пытаюсь открыть URL из функции Ajax, но URL не вызывается.

Я использую обратный вызов, потому что я хочу, чтобы мои данные были завершены в другом домене (используя мой javascript).

Это, в свою очередь, я восстанавливаю с помощью метода iactionresult в Asp.Net Core

Что я хочу, чтобы при получении утвердительного ответа я открывал URL-адрес, указанный в моем методе ajax

Я работаю с Iss Express и против 2019

function ValidarExisteContactoPago() {

    var Nombre;
    var IdUsuario;

    if ($("#Nombre").val() !== null || $("#IdUsuario").val() !== null) {
        IdUsuario = $("#IdUsuario").val();
        Nombre = $("#Nombre").val();

        $.ajax({
            type: "GET",
            url: "/Pago/IndexTCS",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: {
                IdUsuario: $("#IdUsuario").val(),
                Nombre: $("#Nombre").val()   
            },
            async: false,
            success: function (data, status) {
                alert("Data: " + data + "\nStatus: " + status);

                if (status === "success") {

                    window.location.href = "/Pago/IndexTC";

                } else {

                    console.log('Data received: ');

                }

            },
            error: function (data, status) {

                console.log('Data received: ');

            }
        });

    } else {

        console.log('Data received: ');

    }


}


public IActionResult IndexTC()
        {
            return View();
        }


        [HttpGet]
        public JsonResult IndexTCS(UsuarioViewModel usuarioView)
        {


            //RedirectToAction("IndexTC", "Pago");
            bool successToStoreData = SomeMethod(usuarioView);
            if (successToStoreData)
            {
                return Json(usuarioView);  // indicates success
            }
            else
            {
                return Json("Your error message");
            }
        }

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

Вы можете аннотировать с помощью [FromBody] или использовать примитивные типы для параметров метода контроллера.

[HttpPost]
public JsonResult IndexTCS([FromBody] UsuarioViewModel usuarioView)
{
    bool successToStoreData = SomeMethod(usuarioView);
    if (successToStoreData)
    {
        return Ok(usuarioView);  // indicates success
    }
    else
    {
        return BadRequest("Your error message");
    }
}

Пример как [HttpGet].

[HttpGet]
public JsonResult IndexTCS(string someVal, string someOtherVal)
{
    ...
    UsuarioViewModel model = new UsuarioViewModel();
    model.someVal = someVal;
    model.someOtherVal = someOtherVal;
    ...
}
0 голосов
/ 19 октября 2019

Вам следует изменить параметры функции ajax success: с function (data, status) на function (data), и возвращаемый результат Json будет сохранен в data

Ваш код должен выглядеть следующим образом:

function ValidarExisteContactoPago() {

    var Nombre;
    var IdUsuario;

    if ($("#Nombre").val() !== null || $("#IdUsuario").val() !== null) {
        IdUsuario = $("#IdUsuario").val();
        Nombre = $("#Nombre").val();

        $.ajax({
            type: "GET",
            url: "/Pago/IndexTCS",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: {
                IdUsuario: $("#IdUsuario").val(),
                Nombre: $("#Nombre").val()   
            },
            async: false,
            success: function (data) {
               // alert("Data: " + data + "\nStatus: " + status);

                if (data === "success") {
                    window.location.href = "/Pago/IndexTC";

                } else {
                    console.log('Data received: ');
                }
            },
            error: function (data) {
                console.log('Data received: ');
            }
        });

    } else {
        console.log('Data received: ');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...