我试图将一个值从angular传递给我的MVC Core控制器,以便在存储库函数中用作简单的字符串。但是,我注意到它将空值传递给MVC控制器。我不想创建一个MVC模型只是为了将POSTed JSON用作字符串。
[HttpPost("api/specials/GetCurrentSpecialsBySiteID")]
public ActionResult GetCurrentSpecials([FromBody] string siteID)
{
return Ok(_repo.GetAllSpecialsBySiteID(siteID));
}
$http({
method: 'POST',
url: '/api/specials/GetCurrentSpecialsBySiteID',
data: siteID,
headers: { 'Content-Type': 'application/json;charset=UTF-8' }
})
.then(function (response) {
// success
console.log(response);
vm.Specials.push(response.data);
angular.copy(response.data, vm.Specials);
console.log(vm.Specials);
// clear the form
vm.newSpecials = {};
}, function (response) {
// failure
console.log("Error !" + response.data);
vm.errorMessage = "Failed to save subscription";
})
.finally(function () {
vm.isBusy = false;
});
答案 0 :(得分:0)
在mvc控制器中,您将action参数作为字符串传递。 请检查你" siteID"输入你的JS。
方法:' POST', url:' / api / specials / GetCurrentSpecialsBySiteID', 数据: siteID , 标题:{'内容类型':' application / json; charset = UTF-8' } })
答案 1 :(得分:0)
从您的示例看起来您可能应该执行GET而不是POST,但是您可以按照以下方式调整方法以启动并运行:
[HttpPost("api/specials/GetCurrentSpecialsBySiteID")]
public ActionResult GetCurrentSpecials([FromUri] string siteID)
{
return Ok(_repo.GetAllSpecialsBySiteID(siteID));
}
你的角度函数:
$http.post('/api/organisations/test?siteID=' + siteID)
.then(function (response) {
...
})
.finally(function () {
...
});
答案 2 :(得分:0)
尝试在$ Http Angular函数中传递对象。
$http({
method: 'POST',
url: '/api/specials/GetCurrentSpecialsBySiteID',
data: {siteID: siteID},
headers: { 'Content-Type': 'application/json;charset=UTF-8' }
})
.then....
如需更多信息,请查看$ http服务文档here。