为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 json 对象发送到控制器 JsonResult 方法

如何将 json 对象发送到控制器 JsonResult 方法

C#
GCT1015 2022-10-23 10:12:28
我需要传递一个可以包含许多元素的 JSON 对象,我使用以下代码进行了尝试:var app = new Vue({   el: '#crearMetaCompuesta',   data: {      inputmin: 0,      inputmax: 0,      inputres: 0,      rangos_creados: [{         min: 1,         max: 2,         result: 3      }]   },   methods: {      additem: function() {         let nuevoItem = {            min: this.inputmin,            max: this.inputmax,            result: this.inputres,         }         this.rangos_creados.push(nuevoItem);      },      guardarMetaCompuesta: function() {         console.log(JSON.stringify(this.rangos_creados));         axios.post('@Url.Action("GuardarMetaCompuesta")', {               msg: JSON.stringify(app.rangos_creados),               id: 7            }, {               headers: {                  'contentType': 'application/json; charset=utf-8'               }            }).then(function(response) {               alert(response);               console.log("--------->" + JSON.stringify(app.rangos_creados));            })            .catch(function(e) {               console.log("---------> |" + e);            });      }   }})JSONResult 方法:public class MetasCompuestasClass{    public string min { get; set; }    public string max { get; set; }    public string result { get; set; }}public JsonResult GuardarMetaCompuesta(MetasCompuestasClass msg, int id) {  //here I put a breakpoint but the variable arrives null    var x = 1;    return Json(new { result = false, message = msg }, JsonRequestBehavior.AllowGet);}但msg变量总是为空。我应该如何发送对象或应该放置什么“标题”,以便变量不会到达 null 并且我可以保存 type 的元素MetasCompuestasClass?
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

看起来您的rangos_creados对象是一个数组,并且您希望 Action 中有一个对象。

尝试使用这样的操作签名:

public JsonResult GuardarMetaCompuesta(List<MetasCompuestasClass> msg, int id) {

或者,如果您并不打算将其设为数组,因为您总是只将一个项目传递给 api 操作,请将rangos_creados声明更改为对象,并将nuevoItem属性映射到它,或者只是rangos_creados使用值而不是使用更新nuevoItem 并且不再将其推送到集合中。但这取决于你想要做什么。


查看完整回答
反对 回复 2022-10-23
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

看起来您正在发送应用程序。而不是这个。

JSON.stringify(app.rangos_creados)对比JSON.stringify(this.rangos_creados)

请记住,在这种情况下,可能是不同的上下文。


查看完整回答
反对 回复 2022-10-23
  • 2 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信