【问题标题】:How to send to control C# one object some strings using Jquery $ajax如何使用 Jquery $ajax 向控制 C# 一个对象发送一些字符串
【发布时间】:2017-01-25 05:12:29
【问题描述】:
// 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()
})

我没有看到控制器端的对象,也许 js send1 中的一些错误有人可以帮助我吗?返回的 res 是一个空对象,这没关系,但是控制器中没有收到来自 ajax 的对象和字符串。

【问题讨论】:

    标签: ajax asp.net-web-api


    【解决方案1】:

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

    你可以通过替换 Obj2 来测试这个

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

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

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

    将该代码放在ModelBinder 中的标准位置并将其连接到您的Glolbal.asax.cs ApplicationStart

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-17
      • 2019-12-28
      • 1970-01-01
      • 2014-08-11
      • 1970-01-01
      • 2019-11-26
      • 2017-05-20
      • 1970-01-01
      相关资源
      最近更新 更多