我正在创建一个react javascript组件,它从用户收集信息并使用ajax向url端点发送post请求。我的组件正在到达端点。这是代表我的问题的代码:
C#endpoint - Controller:
[EnhancedRequireHttps]
[HttpPost]
public ActionResult MyMethod(MyObject myObject)
{...}
我期待的对象:
public class MyObject
{
public string Name;
public string Number;
public long Id;
public int Code;
}
javascript数据:
this.props.newValues = {
Name : "John",
Number : "1234567890",
Id : "1234",
Code : 1
}
javascript ajax请求:
$.ajax({
type: "POST",
url: this.props.endpointurl, // Contains the endpoint
data: this.props.newValues,
success: function(response) {
}.bind(this),
error: function(err) {
}.bind(this)
});
以前,我将所有参数作为MyMethod的输入,如下所示:
[EnhancedRequireHttps]
[HttpPost]
public ActionResult MyMethod(string Name, string Number, long Id, int Code)
{...}
并且帖子工作正常,但我正在尝试制作一个干净的代码,所以我创建了一个包含这些属性的类,当我这样做时,我的问题就开始了。
我尝试创建一个名为myObject的对象,以在js代码中包含我的参数。 我也尝试使用$(this.props.newValues).serialize()或JSON.stringify(this.props.newValues),dataType =“json”或contentType =“application / json”。
感谢阅读和帮助,我在这里清除对我的情况的任何疑问。 :)
答案 0 :(得分:1)
您需要指定contentType并将json作为字符串发送。见评论:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8", // Try to add this
url: this.props.endpointurl,
data: JSON.stringify(this.props.newValues), // And this
success: function(response) {
}.bind(this),
error: function(err) {
}.bind(this)
});