将json字符串绑定到asp.net MVC中的模型

沙玛尔

我有一个 json 字符串,我想将它解析到 ASP.NET MVC 控制器并绑定到我的模型。这是我这样做的方式,但它不起作用,因为 action 方法中的 book 参数是null.

下面是我的 json 字符串:

function parseDAta() {
    var jsonString = "{\"book\":[{\"id\":\"01\",\"author\":\"j.k.rowling\",\"price\":250,\"available\":true,\"editions\":[{\"id\":\"001\",\"name\":\"2017\"},{\"id\":\"002\",\"name\":\"2018\"}]},{\"id\":\"02\",\"author\":\"carlsom james\",\"price\":500,\"available\":false,\"editions\":null}]}";

    $.ajax({
        url: '/book/book',
        type: "POST",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: jsonString,
        success: function (result) {
            console.log('Data received: ');
            console.log(result);
        }
    });
}

下面是我的操作方法:

[HttpPost]
public ActionResult book(model book)
{
    return null;
}

下面是我的模型:

public class model
{
    public book[] book { get; set; }
}

public class book
{
    public string id { get; set; }
    public string availabity { get; set; }
    public string Author { get; set; }
    public int price { get; set; }

    public  edition[] edition { get; set; }
}

public class edition
{
    public string name { get; set; }
    public string id { get; set; }
}

DefaultModelBinder,因为它希望像这样的有效载荷是无法绑定你的对象:

{"book": {"book":[]}}

所以,json应该是

"{\"book\":{\"book\":[{\"id\":\"01\",\"author\":\"j.k.rowling\",\"price\":250,\"available\":true,\"editions\":[{\"id\":\"001\",\"name\":\"2017\"},{\"id\":\"002\",\"name\":\"2018\"}]},{\"id\":\"02\",\"author\":\"carlsom james\",\"price\":500,\"available\":false,\"editions\":null}]}}";

如果 action 方法是这样的,您创建的 json 将起作用:

public ActionResult book(book[] book)
{
}

为避免这种由于books过多而造成的混淆,您可以将 Action 方法的参数更改为:

public ActionResult book(model model)
{
}

和 json 到:

"{\"model\":{\"book\":[{\"id\":\"01\",\"author\":\"j.k.rowling\",\"price\":250,\"available\":true,\"editions\":[{\"id\":\"001\",\"name\":\"2017\"},{\"id\":\"002\",\"name\":\"2018\"}]},{\"id\":\"02\",\"author\":\"carlsom james\",\"price\":500,\"available\":false,\"editions\":null}]}}";

另一种方法是向FromBody参数添加属性,如下所示:

public ActionResult book([FromBody]model book)
{
}

您需要添加System.Web.Http引用才能使用此属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET MVC模型将单独的日,月,年字符串字段绑定到单个DateTime对象

来自分类Dev

ASP.NET MVC模型将单独的日,月,年字符串字段绑定到单个DateTime对象

来自分类Dev

将字符串属性双向绑定到ASP.NET WebForms中的TextBox

来自分类Dev

空输入字符串的ASP.Net MVC模型绑定创建空模型对象

来自分类Dev

模型绑定时,如何使asp.net MVC将字符串数组转换为值类型数组?

来自分类Dev

ASP.NET MVC-如何“反向”模型绑定以将C#模型转换回查询字符串表示形式

来自分类Dev

模型ASP.Net MVC中的渲染模型

来自分类Dev

在ASP.NET Core控制器操作中,是否有一种现成的方式将HTTP请求的整个主体绑定到字符串参数?

来自分类Dev

ASP.NET MVC中的问题模型绑定嵌套列表

来自分类Dev

什么是ASP.NET MVC中的模型绑定?

来自分类Dev

ASP.NET MVC中的问题模型绑定嵌套列表

来自分类Dev

ASP.NET MVC:模型绑定中的类型转换

来自分类Dev

将HTML字符串从控制器传递到View ASP.Net MVC

来自分类Dev

将HTML字符串从控制器传递到View ASP.Net MVC

来自分类Dev

无法将字符串数组发布到 ASP.NET MVC3

来自分类Dev

如何在Asp.Net MVC 4中将复杂属性绑定到多态模型中?

来自分类Dev

如何将查询字符串映射到模型数据ASP.Net MVC

来自分类Dev

将数组中的JSON列表绑定到ASP.NET模型类

来自分类Dev

将值绑定到Asp.Net MVC应用程序第2部分中的模型

来自分类Dev

如何从ASP.NET MVC5中的JSON绑定模型中的属性

来自分类Dev

在asp.net mvc 4中回发时未绑定到模型的对象列表

来自分类Dev

如何使用DropDownList绑定到WebGrid剃须刀ASP Net MVC 4中的模型?

来自分类Dev

将 JSON 字符串发送到 ASP.NET Core MVC 控制器

来自分类Dev

通过asp-for =“ ...”将字符串值传递到ASP.Net核心中的模型中的方式不起作用

来自分类Dev

如何在ASP.NET MVC模型验证中检查字符串是否包含HTML代码?

来自分类Dev

将JSON字符串整数反序列化为ASP.NET Core中的Enum

来自分类Dev

检索到ASP.NET 5 / MVC 6中的Azure存储的连接字符串

来自分类Dev

.NET Core MVC Web应用程序从查询字符串而不是模型中获取值

来自分类Dev

在ASP.NET MVC中以编程方式验证模型列表

Related 相关文章

  1. 1

    ASP.NET MVC模型将单独的日,月,年字符串字段绑定到单个DateTime对象

  2. 2

    ASP.NET MVC模型将单独的日,月,年字符串字段绑定到单个DateTime对象

  3. 3

    将字符串属性双向绑定到ASP.NET WebForms中的TextBox

  4. 4

    空输入字符串的ASP.Net MVC模型绑定创建空模型对象

  5. 5

    模型绑定时,如何使asp.net MVC将字符串数组转换为值类型数组?

  6. 6

    ASP.NET MVC-如何“反向”模型绑定以将C#模型转换回查询字符串表示形式

  7. 7

    模型ASP.Net MVC中的渲染模型

  8. 8

    在ASP.NET Core控制器操作中,是否有一种现成的方式将HTTP请求的整个主体绑定到字符串参数?

  9. 9

    ASP.NET MVC中的问题模型绑定嵌套列表

  10. 10

    什么是ASP.NET MVC中的模型绑定?

  11. 11

    ASP.NET MVC中的问题模型绑定嵌套列表

  12. 12

    ASP.NET MVC:模型绑定中的类型转换

  13. 13

    将HTML字符串从控制器传递到View ASP.Net MVC

  14. 14

    将HTML字符串从控制器传递到View ASP.Net MVC

  15. 15

    无法将字符串数组发布到 ASP.NET MVC3

  16. 16

    如何在Asp.Net MVC 4中将复杂属性绑定到多态模型中?

  17. 17

    如何将查询字符串映射到模型数据ASP.Net MVC

  18. 18

    将数组中的JSON列表绑定到ASP.NET模型类

  19. 19

    将值绑定到Asp.Net MVC应用程序第2部分中的模型

  20. 20

    如何从ASP.NET MVC5中的JSON绑定模型中的属性

  21. 21

    在asp.net mvc 4中回发时未绑定到模型的对象列表

  22. 22

    如何使用DropDownList绑定到WebGrid剃须刀ASP Net MVC 4中的模型?

  23. 23

    将 JSON 字符串发送到 ASP.NET Core MVC 控制器

  24. 24

    通过asp-for =“ ...”将字符串值传递到ASP.Net核心中的模型中的方式不起作用

  25. 25

    如何在ASP.NET MVC模型验证中检查字符串是否包含HTML代码?

  26. 26

    将JSON字符串整数反序列化为ASP.NET Core中的Enum

  27. 27

    检索到ASP.NET 5 / MVC 6中的Azure存储的连接字符串

  28. 28

    .NET Core MVC Web应用程序从查询字符串而不是模型中获取值

  29. 29

    在ASP.NET MVC中以编程方式验证模型列表

热门标签

归档