Как скрыть параметр Id из ссылки в ядре asp.net MVC JQuery? - PullRequest
0 голосов
/ 27 апреля 2018

вот мой сценарий, куда я перенаправляю на мой взгляд

<script>
    $(document).on('click', '.btndetail', function () {
            var id = $(this).data("id");
            var url = "/Schools/SchoolDetails/Id=" + id;
            window.location.href = url;
        }
    );
</script>

и идентификатор приходит в контроллере

 [HttpGet]
 public IActionResult SchoolDetails(string Id)
 {
     return View();
 }

http://localhost:55696/Schools/SchoolDetails/Id=1234

Но в ссылке отображается идентификатор, как его скрыть?

Ответы [ 2 ]

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

Вам необходимо реализовать метод ajax, чтобы делать асинхронные вызовы с помощью GET, см. Этот документ: http://api.jquery.com/jquery.ajax/

Вот пример для реализации в вашем коде:

$(document).on('click', '.btndetail', function () {
        var id = $(this).data("id");
        var url = '@Url.Action("SchoolDetails", "Schools")';
        $.ajax({
            type: "GET",
            url: url,
            data: { Id = id },
            success: function (data) {
                // Success Here
                window.location.href = url;

            },
            error: function (data) {
                alert("Error!");
            }
        })
    })
0 голосов
/ 02 мая 2018

Если вы не хотите, чтобы значение отображалось, вам придется опубликовать его на сервере.

Если вы не хотите, чтобы страница обновлялась, вы выполните POST с ajax и обновите только часть страницы. Это может быть достигнуто с помощью следующего:

$(document).on('click', '.btndetail', function () {
        var id = $(this).data("id");
        var url = "/Schools/SchoolDetails/";

        $.ajax({
            url: url,
            type: "POST",
            data: { Id: id },
            success: function (data) {
                //returns whatever your controller returns.
            },
            error: function (data) {
                //error
            }
        });
    }
);

Ваш контроллер также должен быть обновлен, чтобы ожидать этот "POST"

[HttpPost]
public IActionResult SchoolDetails(string Id)
{
    return View();
}

Если вы хотите публиковать и перенаправлять пользователя на эту опубликованную страницу - вы можете использовать аккуратный бесплатный плагин jQuery под названием jQuery.Redirect

$(document).on('click', '.btndetail', function () {
        var id = $(this).data("id");
        var url = "/Schools/SchoolDetails/";

        $.redirect(url, {
                Id: id
        });

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