我需要传递一个可以包含许多元素的 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 并且不再将其推送到集合中。但这取决于你想要做什么。
有只小跳蛙
TA贡献1824条经验 获得超8个赞
看起来您正在发送应用程序。而不是这个。
JSON.stringify(app.rangos_creados)
对比JSON.stringify(this.rangos_creados)
请记住,在这种情况下,这可能是不同的上下文。
- 2 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消