gpt4 book ai didi

javascript - 如何将 json 对象发送到 Controller JsonResult 方法

转载 作者:行者123 更新时间:2023-11-30 14:07:14 24 4
gpt4 key购买 nike

我需要传递一个可以有很多元素的 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。

我应该如何发送对象或我应该放置什么“ header ”,以便变量不会到达 null 并且我可以保存 MetasCompuestasClass 类型的元素?

最佳答案

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

像这样尝试使用 Action 签名:

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

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

关于javascript - 如何将 json 对象发送到 Controller JsonResult 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55143136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com