asp.net - 使用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},
});
});
提前致谢
简
解决方案
如果您试图访问控制器并向其发布数据。我会使用这种结构。
//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。不是空的
推荐阅读
- python - 无法替换值以更正此 mplDeprecation
- ios - 如何将数据从 UIPageViewController 传递到它的“子视图”之一?
- haskell - Haskell中函数的理论定义是什么
- php - mysqli 数据库连接有时有效
- java - 接口示例似乎有不必要的扩展
- twilio - Azure 函数中未命中断点
- python - 使用 isin 函数过滤 Pandas 中的行时出现 TypeError 错误
- javascript - React 服务器不断遇到与 socket.io 的连接错误(重新打开项目时)
- html - 使用自定义组件在 Vue 中渲染 TR
- c# - 从 C# 中的 Combobox 中选择特定项目时,将 Label 值增加 1