web api put识别查询字符串但不识别正文
当我将用户作为查询字符串传递(使用$ http中的参数)并设置web api方法在uri中查找它们时,一切都很好。 但是当我按照下面的方式传递它们时,用户显示为null。 我在这里失踪了什么?
角度函数
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 }); }); };
web api行动
public HttpResponseMessage Put(HttpRequestMessage request, [FromUri]string role, [FromBody]string[] user) { return request.CreateResponse(HttpStatusCode.NoContent); }
尝试: data: users
而不是data: data
。
在asp.net api中, 整个请求体绑定到一个参数。 因此,操作方法参数中的[FromBody]
不能包含多个参数。 只有一个=>我们不需要在请求体中指定属性名称。
- WCF Web服务,返回错误/exception字符串
- 无法使用Ninject将依赖项注入到从Angular Service调用的ASP.NET Web API控制器中
- 在MVC6中如何阻止直接访问wwwroot中的文件夹?
- “元素目前不可见,因此可能无法与之交互”但另一个是?
- 使用ASP.Net webapi的Angular.js $资源?
- ngcsv – 在safari和IE浏览器中遇到麻烦
- Web Api 2 – 如何从HTTPGET返回映像(来自Azure存储的MemoryStream)而不保存到磁盘?
- 如何让Angular JS在Visual Studio 2015解决方案中工作?
- 从C#Byte数组加载图像,并使用AngularJS将图像放在html标记中