首页 > 解决方案 > 使用ajax将参数传递给Web API

问题描述

我正在尝试将参数传递给我的 web api,但发布请求没有通过。它可以在没有参数的情况下正常工作,但使用一个参数是行不通的。我一直在使用相同的方法将参数传递给 MVC 操作,并且效果很好,但 api 就是不接受它。

视频控制器:

    [HttpPost]
    public void LikeVideo(uint videoID)
    {

    }

html中的链接:

<a href="@Url.Action("LikeVideo", "Video", new { httpRoute = "DefaultApi"})" class="RateVideo">

阿贾克斯请求:

    $(".RateVideo").click(function (e) {

    e.preventDefault();
    $.ajax({
        type: "POST",
        url: $(this).attr("href"),
        data: { videoID: 123},

    });

});

提前致谢

标签: asp.netajaxasp.net-mvcasp.net-web-api

解决方案


如果您试图访问控制器并向其发布数据。我会使用这种结构。

 //If 123 is an external parameter passed into the function 
 var json = '{videoID: ' + 123 + '}';

 $.ajax({
     url:'@Url.Action("LikeVideo", "Video")',
     type:'POST',
     data:json,
     contentType: 'Application/json',
     success:function(result){
         //Whatever
     }
 });

您也可以使用 Json.Stringify 代替我在此处对数据所做的操作。

编辑:void 也应该是 ActionResult 或 JsonResult。不是空的


推荐阅读