ajax 没有将对象数组传递给操作
ajax doesn't pass array of objects to action
我正在使用 ajax 将 Json 数据传递给 asp.net 核心项目中的一个动作。
我有一组对象要传递
var AgentScores = [];
.
.
.
AgentScores.push({
AgentId: AgentId,
Fullname: Fullname,
Score : Score
});
$.ajax({
type: "POST",
url: "/Score/SelfReportedScores",
contentType: 'application/json; charset=utf-8',
//large data must be passed using json
data: JSON.stringify(AgentScores),
success: function (result) {
},
error: function (e) {
}
});
我有一个名为 AgentsListScoreClass.cs 的 class,下面是我尝试在我的操作中获取数组的方式:
public void SelfReportedScores([FromBody] List<AgentsListScoreClass> AgentScores)
{
AgentScores
始终为空。
当我传递一个字符串列表时没问题,但是 AgentsListScoreClass
它总是空的。
public class AgentsListScoreClass
{
public string AgentId { get; set; }
public string Fullname { get; set; }
public short Score { get; set; }
}
您必须通过删除 contenttype 和 stringify
来修复 ajax 错误
var agentScores = [];
agentScores.push(
{
AgentId: AgentId,
Fullname: Fullname,
Score : Score
}
);
$.ajax({
type: "POST",
url: "/Score/SelfReportedScores",
data: { agentScores },
success: function (result) {
},
error: function (e) {
}
});
也许您只需要邮递员使用 [FromBody]。如果仍然有 null,请尝试将其删除。
AgentScores is always null.
请在浏览器开发者工具“网络”选项卡中捕获带有发布数据的实际请求,并检查您发布的数据是否如下所示。
而你的 AgentsListScoreClass
模型的 属性 AgentId
被定义为 string
类型,请确保你用引号将值括起来,像这样 "AgentId":"1"
.
更新:
AgentScores.push({AgentId: AgentId, Fullname: Fullname, Score : Score});
this is how data looks like 'data = "[{"AgentId":"015d6fce-2b6e-4702-b4ac-8af31bba8ffa","Fullname":"name","Score":"0"},{"AgentId":" ......'
您可以尝试使用 parseFloat()
函数来解析 Score
数据,如下所示。
AgentScores.push({
AgentId: AgentId,
Fullname: Fullname,
Score: parseFloat(Score)
});
我正在使用 ajax 将 Json 数据传递给 asp.net 核心项目中的一个动作。 我有一组对象要传递
var AgentScores = [];
.
.
.
AgentScores.push({
AgentId: AgentId,
Fullname: Fullname,
Score : Score
});
$.ajax({
type: "POST",
url: "/Score/SelfReportedScores",
contentType: 'application/json; charset=utf-8',
//large data must be passed using json
data: JSON.stringify(AgentScores),
success: function (result) {
},
error: function (e) {
}
});
我有一个名为 AgentsListScoreClass.cs 的 class,下面是我尝试在我的操作中获取数组的方式:
public void SelfReportedScores([FromBody] List<AgentsListScoreClass> AgentScores)
{
AgentScores
始终为空。
当我传递一个字符串列表时没问题,但是 AgentsListScoreClass
它总是空的。
public class AgentsListScoreClass
{
public string AgentId { get; set; }
public string Fullname { get; set; }
public short Score { get; set; }
}
您必须通过删除 contenttype 和 stringify
来修复 ajax 错误 var agentScores = [];
agentScores.push(
{
AgentId: AgentId,
Fullname: Fullname,
Score : Score
}
);
$.ajax({
type: "POST",
url: "/Score/SelfReportedScores",
data: { agentScores },
success: function (result) {
},
error: function (e) {
}
});
也许您只需要邮递员使用 [FromBody]。如果仍然有 null,请尝试将其删除。
AgentScores is always null.
请在浏览器开发者工具“网络”选项卡中捕获带有发布数据的实际请求,并检查您发布的数据是否如下所示。
而你的 AgentsListScoreClass
模型的 属性 AgentId
被定义为 string
类型,请确保你用引号将值括起来,像这样 "AgentId":"1"
.
更新:
AgentScores.push({AgentId: AgentId, Fullname: Fullname, Score : Score});
this is how data looks like 'data = "[{"AgentId":"015d6fce-2b6e-4702-b4ac-8af31bba8ffa","Fullname":"name","Score":"0"},{"AgentId":" ......'
您可以尝试使用 parseFloat()
函数来解析 Score
数据,如下所示。
AgentScores.push({
AgentId: AgentId,
Fullname: Fullname,
Score: parseFloat(Score)
});