我有一个专有的C ++服务器提供的网站。 代码中有一个标准的javascript ajax函数,但我不想开始编辑它。 实际发送位如下:
this.send=function(myawesomemodel)
{
/*Code redacted for brevity*/
obj.req.open('POST',myawesomeurl,true);
obj.req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
obj.req.send(JSON.stringify(myawesomemodel));
}
它用于将键值对作为查询字符串发送,但现在需要发送json。 我可以为这个函数发送一个控制器/动作地址(myawesomeurl)以获得适当的终点,我可以发送一个很棒的对象,该动作将被动作接受为一个基本的C#模型(myawesomemodel):
public ActionResult myawesomeaction(MyAwesomeClass myawesomeclass) { }
对于.Net模型:
public class MyAwesomeClass
{
public int A { get; set; }
public int B { get; set; }
public string C { get; set; }
}
如何构建控制器可识别的javascript对象? 这是我最近的失败:
function MyAwesomeModel()
{
this.A=1;
this.B=2;
this.C='Three';
}
然后:
var anawesomemodel=new MyAwesomeModel();
myawesomeajaxmodel.send(anawesomemodel);
我无法在普通的javascript中构造正确的对象,所以mvc动作会注册它,请问正确的方法是什么?
答案 0 :(得分:0)
var myawesomemodel = {
A : 1,
B : 2,
C : 'Three'
}
答案 1 :(得分:0)
对于遇到相同问题的其他人找到此页面,Stephen Muecke将其钉住
将ajax对象更改为:
this.send=function(myawesomemodel)
{
/*Code redacted for brevity*/
obj.req.open('POST',myawesomeurl,true);
obj.req.setRequestHeader('Content-type','application/json;charset=utf-8');
obj.req.send(JSON.stringify(myawesomemodel));
}