没有从请求正文中获取我的参数
Not getting my parameter from the body of the request
我尝试点击我的 API 控制器,我能够做到这一点。但是,该方法没有从请求正文中获取我的参数。我知道这是小事。
我试过以多种不同方式围绕添加参数移动服务。到目前为止似乎没有任何效果。
注意事项
如果有帮助,这是一个 MVC 4 应用程序。我相信它是 angular 语法或控制器属性中的某些东西。
我正在使用 HTTPPost。
服务
(function () {
'use strict';
var rmdsnewServices = angular.module('rmdsnewServices', ['ngResource']);
rmdsnewServices.factory('rmds', ['$resource',
function ($resource) {
return {
rmdnewly: $resource('/api/rmd/', {}, {
query: {
method: 'GET', params: {}, url: '/api/rmd/getNewly/', isArray: false,
transformResponse: function (data) { return { list: angular.fromJson(data) } }
}
}),
rmdsave: $resource('/api/rmd/AddRMD/:newrmd', { newrmd: '@newrmd' }, {
save: {
method: 'POST', params: { newrmd: '@newrmd' }
}
})
};
}]);
})();
API 控制器
[Route("api/rmd/AddRMD")]
[HttpPost]
public HttpResponseMessage AddRMD([FromBody]string newrmd)
{
var rmd = newrmd;
bool result;
//result = rs.AddRMD(newrmd);
result = true;
if (result)
{
return new HttpResponseMessage(System.Net.HttpStatusCode.OK);
}
else
{
return new HttpResponseMessage(System.Net.HttpStatusCode.ExpectationFailed);
}
}
您的控制器操作需要一个字符串。
此外,您的 $resource 不需要在 url:
上发送 :param
rmdsave: $resource('/api/rmd/AddRMD/', { }, {
save: {
method: 'POST'
}
})
然后简单地发送一个字符串,将击中您的控制器:
angular.module('rmdsnewServices').controller('MyController', ['rmds', function (rmds) {
this.click = function() {
rmds.rmdsave.save("'asd'");
}
}]);
要发送对象而不是字符串:
rmds.rmdsave.save({Name:"someName"});
public class Test
{
public string Name { get; set; }
}
public class rmdController : ApiController
{
[HttpPost, Route("api/rmd/AddRMD")]
public HttpResponseMessage SomePath([FromBody] Test newrmd)
{ ...
我尝试点击我的 API 控制器,我能够做到这一点。但是,该方法没有从请求正文中获取我的参数。我知道这是小事。
我试过以多种不同方式围绕添加参数移动服务。到目前为止似乎没有任何效果。
注意事项
如果有帮助,这是一个 MVC 4 应用程序。我相信它是 angular 语法或控制器属性中的某些东西。
我正在使用 HTTPPost。
服务
(function () {
'use strict';
var rmdsnewServices = angular.module('rmdsnewServices', ['ngResource']);
rmdsnewServices.factory('rmds', ['$resource',
function ($resource) {
return {
rmdnewly: $resource('/api/rmd/', {}, {
query: {
method: 'GET', params: {}, url: '/api/rmd/getNewly/', isArray: false,
transformResponse: function (data) { return { list: angular.fromJson(data) } }
}
}),
rmdsave: $resource('/api/rmd/AddRMD/:newrmd', { newrmd: '@newrmd' }, {
save: {
method: 'POST', params: { newrmd: '@newrmd' }
}
})
};
}]);
})();
API 控制器
[Route("api/rmd/AddRMD")]
[HttpPost]
public HttpResponseMessage AddRMD([FromBody]string newrmd)
{
var rmd = newrmd;
bool result;
//result = rs.AddRMD(newrmd);
result = true;
if (result)
{
return new HttpResponseMessage(System.Net.HttpStatusCode.OK);
}
else
{
return new HttpResponseMessage(System.Net.HttpStatusCode.ExpectationFailed);
}
}
您的控制器操作需要一个字符串。 此外,您的 $resource 不需要在 url:
上发送 :param rmdsave: $resource('/api/rmd/AddRMD/', { }, {
save: {
method: 'POST'
}
})
然后简单地发送一个字符串,将击中您的控制器:
angular.module('rmdsnewServices').controller('MyController', ['rmds', function (rmds) {
this.click = function() {
rmds.rmdsave.save("'asd'");
}
}]);
要发送对象而不是字符串:
rmds.rmdsave.save({Name:"someName"});
public class Test
{
public string Name { get; set; }
}
public class rmdController : ApiController
{
[HttpPost, Route("api/rmd/AddRMD")]
public HttpResponseMessage SomePath([FromBody] Test newrmd)
{ ...