如何使用Jquery$ajax向控制C#one对象发送一些字符串 //mycontroller [HttpPost] 公共IEnumerable Post([FromBody]Obj2 val,字符串str1,字符串str2) { Model1=新函数1(); Obj1[]res; res=客户端功能1(val、str1、str2); 返回res; } //myscript 发送1.单击(功能(e){ $.ajax({ url:action, 日期类型:“JSON”, 数据:{ “val”:JSON.stringify($(this.serialize()), }, cache:false, 类型:“POST”, beforeSend:函数(数据){} ) .完成 .fail() .总是 })

如何使用Jquery$ajax向控制C#one对象发送一些字符串 //mycontroller [HttpPost] 公共IEnumerable Post([FromBody]Obj2 val,字符串str1,字符串str2) { Model1=新函数1(); Obj1[]res; res=客户端功能1(val、str1、str2); 返回res; } //myscript 发送1.单击(功能(e){ $.ajax({ url:action, 日期类型:“JSON”, 数据:{ “val”:JSON.stringify($(this.serialize()), }, cache:false, 类型:“POST”, beforeSend:函数(数据){} ) .完成 .fail() .总是 }),ajax,asp.net-web-api,Ajax,Asp.net Web Api,我在控制器端看不到对象,也许js send1中有错误,有人能帮我吗?返回的res是空对象,这没问题,但控制器中没有收到来自ajax的对象和字符串。要将Obj2 val解析为对象,您的MVC项目需要有一个ModelBinder,它可以理解dsObj2。它无法神奇地将JSON字符串解释为任何类型的类 您可以通过替换Obj2来测试这一点 // mycontroller [HttpPost] public IEnumerable<Obj1> Post([FromBody]Obj2 val,

我在控制器端看不到对象,也许js send1中有错误,有人能帮我吗?返回的res是空对象,这没问题,但控制器中没有收到来自ajax的对象和字符串。

要将
Obj2 val
解析为对象,您的MVC项目需要有一个
ModelBinder
,它可以理解ds
Obj2
。它无法神奇地将JSON字符串解释为任何类型的类

您可以通过替换Obj2来测试这一点

// mycontroller
[HttpPost]
public IEnumerable<Obj1> Post([FromBody]Obj2 val, string str1, string str2)
{
Model1 = new function1();
Obj1[] res;

res= client.function1(val, str1, str2);
return res;
}

//myscript
send1.click(function (e) {
$.ajax({
url: action,
datetype: "JSON",
data: {
  'val': JSON.stringify($(this).serialize()),
},
cache: false,
type: "POST",
beforeSend: function (data) {}
)
.done()
.fail()
.always()
})

看看你是否得到了JSON字符串?如果可以的话,你的下一步就是将字符串转换成
Obj2
的实例。你必须为此编写代码;这不会神奇地发生


将代码放在
ModelBinder
中的标准位置,并将其连接到
Glolbal.asax.cs
应用程序启动
要将
obj2val
解析为对象,MVC项目需要有一个理解
Obj2
ModelBinder
。它不能神奇地解释JSON stri我喜欢任何种类的课程

您可以通过替换Obj2来测试这一点

// mycontroller
[HttpPost]
public IEnumerable<Obj1> Post([FromBody]Obj2 val, string str1, string str2)
{
Model1 = new function1();
Obj1[] res;

res= client.function1(val, str1, str2);
return res;
}

//myscript
send1.click(function (e) {
$.ajax({
url: action,
datetype: "JSON",
data: {
  'val': JSON.stringify($(this).serialize()),
},
cache: false,
type: "POST",
beforeSend: function (data) {}
)
.done()
.fail()
.always()
})

看看你是否得到了JSON字符串?如果可以的话,你的下一步就是将字符串转换成
Obj2
的实例。你必须为此编写代码;这不会神奇地发生

放置代码的标准位置是在
ModelBinder
中,并将其连接到
Glolbal.asax.cs
应用程序启动中

Post([FromBody]string val, string str1, string str2)