通过Ajax将布尔值传递给asp.net api控制器

时间:2018-07-10 11:19:42

标签: ajax asp.net-apicontroller

我正在尝试通过boolean将单个ajax值传递给server API。 尽管我通过false将其设置为true,但API动作被击中,但参数(改组后的)为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"); }
        });
    }
}

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

1 个答案:

答案 0 :(得分:0)

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

定义了一个新类:

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

然后我的控制器已更改:

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

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