如何解决ajax 不会将对象数组传递给操作
我正在使用 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 的类,下面是我如何尝试在我的操作中获取数组:
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] 作为邮递员。如果您仍然有空值,请尝试将其删除。
,AgentScores 始终为空。
请在浏览器开发者工具“网络”选项卡中使用发布的数据捕获实际请求,并检查您发布的数据是否如下所示。
并且您的 AgentId
模型的属性 AgentsListScoreClass
被定义为 string
类型,请确保用引号将值括起来,例如 "AgentId":"1"
。
更新:
AgentScores.push({AgentId: AgentId,Score : Score});
这是数据的样子 'data = "[{"AgentId":"015d6fce-2b6e-4702-b4ac-8af31bba8ffa","Fullname":"name","Score":"0"},{" AgentId":" ......'
您可以尝试使用 parseFloat()
函数解析 Score
数据,如下所示。
AgentScores.push({
AgentId: AgentId,Score: parseFloat(Score)
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。