首页 > 解决方案 > 通过 Ajax 将布尔值传递给 asp.net api 控制器

问题描述

我正在尝试将单个boolean值传递ajax给 a server API。API 操作被击中,但参数(随机播放)是false,尽管我通过Ajax.

api 控制器动作是这样的:

[HttpPost("PostShuffled")]
public IActionResult PostShuffled([FromBody]bool shuffled)
{
    userSession.Shuffled = shuffled;
    return Ok();
}

我的 Ajax 调用是这样的:

function ChangeViewMode(el) {
    if (el.id == "ViewShuffled") {
        $.ajax({
            url: "/api/Data/PostShuffled",
            contentType: "application/json",
            method: "POST",
            data: JSON.stringify({ shuffled: true }),
            success: function () { alert("ok"); }
        });
    }
}

我的问题是我做错了什么?

标签: ajaxasp.net-apicontroller

解决方案


好的,我已经通过这种方式解决了问题:

定义了一个新类:

 public class AjaxShuffled
    {
        public bool shuffled { get; set; }
    }

然后在我的控制器中更改:

[HttpPost("PostShuffled")]
    public IActionResult PostShuffled([FromBody]AjaxShuffled s)
    {
        userSession.Shuffled = s.shuffled;
        return Ok();
    }

现在该值已正确传递。我必须将布尔值封装到一个类中才能使其工作。


推荐阅读