【问题标题】:how to Receive two ajax json Data from .net如何从.net接收两个ajax json数据
【发布时间】:2020-08-31 00:39:22
【问题描述】:

我使用 .net 并将 js(ajax) 两个数据发送到 .net 控制器
数据中的test1和test2是json数据。

.ajax({
        type: 'POST',
        url: "/test/test_Put/",
        contentType: 'application/json; charset=utf-8',
        data: {json_1:JSON.stringify(test1), json_2:JSON.stringify(test2)},
        dataType:'JSON',
        success:function(data){
        },
        error: function (data) {
        }
    });

.net 控制器

[HttpPost]
        public JsonResult test_Put([FromBody]test1 tt1, [FromBody]test2 tt2){
        }

但是我看到了错误ㅜㅜ
我应该如何在.net中处理它

【问题讨论】:

  • 好吧,test_Put 的参数被命名为 tt1tt2,但您传递的是 json_1json_2...
  • 我知道这个问题,但我找不到解决方案。尝试了很多不同的方法,但都失败了
  • 您没有将整个数据作为 json 发送,而是将 contentType 设置为 json

标签: javascript .net json ajax


【解决方案1】:

您的操作中应该只有 1 个 [FromBody]。 https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-2.1

每个动作最多可以有一个参数 [来自正文]。 ASP.NET Core MVC 运行时委派职责 将请求流读取到格式化程序。一旦请求 为参数读取流,通常无法读取 再次请求流以绑定其他 [FromBody] 参数。

为此创建一个包装类。

public class TestRequest
{
    public test1 json_1;
    public test2 json_2;
}

[HttpPost]
public JsonResult test_Put([FromBody]TestRequest data){}

顺便说一句,您应该在方法和变量名中使用驼峰式大小写。

【讨论】:

    猜你喜欢
    • 2016-10-15
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2017-12-08
    • 2014-07-17
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多