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

Posted

技术标签:

【中文标题】通过 Ajax 将布尔值传递给 asp.net api 控制器【英文标题】:Passing a boolean value to asp.net api controller via Ajax 【发布时间】:2018-12-18 05:14:59 【问题描述】:

我正在尝试通过ajax 将单个boolean 值传递给server API。 API 操作被击中,但参数(混洗)是 false,尽管我通过 Ajax 将其设置为 true。

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】:

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

定义了一个新的类:

 public class AjaxShuffled
    
        public bool shuffled  get; set; 
    

然后在我的控制器中改变了:

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

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

【讨论】:

以上是关于通过 Ajax 将布尔值传递给 asp.net api 控制器的主要内容,如果未能解决你的问题,请参考以下文章

C# ASP.net MVC Ajax MySQL DATATABLES 列搜索无法将搜索值传递给控制器

我可以将子动作的返回值传递给 ASP.net 中的视图吗

ASP.Net C#MCV - 将值从Ajax Jquery传递给Controller

使用 Jquery Ajax 将数组传递给 asp.net C# 控制器

asp.net jquery ajax post 后台页面获取不到值 怎么解决?

如何使用 AJAX JQuery ASP .NET MVC 4 将 FormCollection 和文件传递给控制器