Передача параметра bool в .NET Core2 MVC Controller с помощью Jquery Ajax - PullRequest
0 голосов
/ 12 июня 2018

Я перевожу старое приложение веб-форм asp.net в .NET CORE2 MVC и при попытке AJAX-вызова к контроллеру с параметром bool контроллер, кажется, неявно анализирует его как bool, как раньшев решении ASP.Когда значение true передается в контроллер, параметр все равно заканчивается как false.Я знаю, что параметр отправляется правильно..NET Core не поддерживает это, или я что-то упускаю?

PS.Я мог бы изменить параметр на JObject и получить значение таким образом, но я прошу прояснить, почему он не работает, как есть.

Спасибо!

AJAX

$.ajax({
            type: "POST",
            url: "GetActiveUsersAndAllGroups",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            data: JSON.stringify({ secret: bfsGrupper.secret }),
            beforeSend: ShowLoader(),
            complete: function () { $.unblockUI(); },
            success: function (response) {
                //Stuff
            },
            error: function (response) {
                //Stuff
            }
        });

Контроллер

    [Route("GetActiveUsersAndAllGroups")]
    public IActionResult GetActiveUsersAndAllGroups([FromBody] bool secret)
    {
        return Ok(_manager.GetBaseTableData(HttpContext.User.Identity.Name,secret));
    }

1 Ответ

0 голосов
/ 12 июня 2018

Привязка модели определенно работает в ASP.NET Core.Это не работает для вас, потому что вы пытаетесь получить примитивный логический секрет в качестве параметра, но в вашем POST вы отправляете объект JSON.Либо измените параметр, чтобы он принимал класс, либо не отправляйте весь объект JSON.

Я также заметил, что вы отправляете запрос POST по URL-адресу GetActiveUsersAndAllGroups.Я, вероятно, предпочел бы затем изменить запрос POST на запрос GET, поскольку POST предназначен для сохранения данных.Дополнительным преимуществом этого является то, что вы можете передать секрет в качестве параметра строки запроса, что более уместно сделать в этом сценарии: GetActiveUsersAndAllGroups?secret=true.Не забудьте затем изменить [FromBody] на [FromQuery].

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