Как перенаправить с помощью ajax в MVC - PullRequest
0 голосов
/ 31 мая 2018

У меня есть кнопка при нажатии, она принимает входные значения и перенаправляет на другую страницу в javascript, которая выглядит примерно так window.location = "Action Param1=value1&Param2=Value2".Но метод использует строку запроса, которую я хочу избежать.Так что я подумал об использовании ajax

   ` $.ajax({
            type: "POST",
            url: "/MyController/MyAction",
            data: '{Param1:"value1",Param2:"value2"}',
            contentType: "application/json,charset=utf-8",
            dataType: "json",
            success: function () {
            }
        });`

Это вызывает контроллер, но ничего не возвращает.Я не знаю, что я делаю не так, рабочий код был бы оценен.

1 Ответ

0 голосов
/ 31 мая 2018

, если включено только перенаправление на страницу

return JavaScript("window.location = 'http:yourlink'");

- лучший вариант, но вы хотите передать данные, поэтому выполните следующие действия:

function redi() {
        var date = new Date(); 
        var link = '@Url.Action("ActionMethod", "Home")';  var args = {
            param1: date.toISOString(),  
            param2: date.toISOString(),
            param3: 'yourdata'
        }; 

        $.ajax({
            type: "GET",
            url: link, 
            data: args, 
            dataType: "json",
            success: function (data) {

                window.location.href = data.redirecturl; 

            },
            error: function (httpRequest, textStatus, errorThrown) {   
                alert("Error: " + textStatus + " " + errorThrown + " " + httpRequest);
            }
        });

}

Контроллер:

[HttpGet]
    public ActionResult ActionMethod(DateTime param1, DateTime param2, string param3)
    {
        return Json(new { redirecturl = "http:yourlink" }, JsonRequestBehavior.AllowGet);

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