繁体   English   中英

如何创建一个JavaScript模型发送到MVC控制器?

[英]How to create a javascript model to send to an MVC controller?

我有一个由专有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):

公共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操作会对其进行注册,请问正确的方法是什么?

var myawesomemodel = {
    A : 1,
    B : 2,
    C : 'Three'
}

对于发现该页面有相同问题的其他人, 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));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM