gpt4 book ai didi

c# - web api put 识别查询字符串但不识别正文

转载 作者:太空狗 更新时间:2023-10-30 00:41:18 26 4
gpt4 key购买 nike

当我将用户作为查询字符串传递(使用 $http 中的参数)并设置 web api 方法以在 uri 中查找它们时,一切都很顺利。但是当我如下传递它们时,用户显示为空。我在这里错过了什么?

Angular 函数

scope.saveChanges = function () {
// create array of user id's
var users = [];
angular.forEach(scope.usersInRole, function (v, k) {
users.push(v.Key);
});

var data = { user: users };

var token = angular.element("input[name='__RequestVerificationToken']").val();

// put changes on server
http({
url: config.root + 'api/Roles/' + scope.selectedRole + '/Users',
method: 'PUT',
data: data,
contentType: "application/json; charset=utf-8",
headers: { "X-XSRF-Token": token },
xsrfCookieName: '__RequestVerificationToken'
}).success(function (result) {
// notify user changes were saved
angular.element('#myModal').reveal({ closeOnBackgroundClick: false });
});
};

网络 API 操作

 public HttpResponseMessage Put(HttpRequestMessage request, [FromUri]string role, [FromBody]string[] user)
{

return request.CreateResponse(HttpStatusCode.NoContent);
}

最佳答案

尝试:data: users 而不是 data: data

在 asp.net api 中,整个请求正文 都绑定(bind)到一个参数。出于这个原因,您不能有多个参数在操作方法参数中使用[FromBody]。只有一个 => 我们不需要在请求正文中指定属性名称。

关于c# - web api put 识别查询字符串但不识别正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21618471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com