我正在使用pdfsharp创建一个pdf。我需要将图表图例数据(名称,颜色)传递给pdfsharp控制器。我正在使用一个有角度的$ http帖子,一个ajax帖子也可以。我得到的错误是
Request URL:http://localhost:46691/api/exportChartPdf/[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object],[object%20Object]
我需要一些如何将其作为字符串传递?如果是这样,我将如何在api控制器中将其解析回我需要的方式?
我试图传回的对象
0: Object
color: "rgb(67,134,215)"
name: "Fleming Place - Miscellaneous Spec Builders"
__proto__: Object
1: Object
2: Object
3: Object
4: Object
的javascript
var legendModel = $scope.seriesData.map(function (a) {
return {
color: a.color,
name: a.name
};
});
$http.post('/api/exportChartPdf/' + legendModel);
api控制器
[HttpPost]
public PDF Post() // allow nullable parameter
{
try
{
答案 0 :(得分:2)
看起来您的控制器操作缺少参数,
[HttpPost]
public PDF Post(SomeClass legendModel) // allow nullable parameter
{
try
{
SomeClass将包含color
& name
属性。
然后你应该纠正你的$http.post
调用,将第二个参数作为JSON格式的数据传递。
$http.post('/api/exportChartPdf', { legendModel: legendModel);
答案 1 :(得分:2)
您应该在表单主体上发布对象,而不是在查询字符串上。此外,您的Web API控制器应该接收一个强类型对象,该对象镜像您传递的数据。
public class Data
{
public string Color { get; set; }
public string Name { get; set; }
}
[HttpPost]
public PDF Post([FromBody]List<Data> data)
{
...
}
然后简单地发布对象。
var legendModel = $scope.seriesData.map(function (a) {
return {
color: a.color,
name: a.name
};
});
$http.post('/api/exportChartPdf/', legendModel);