0

我正在尝试将 json 绑定到我在 ASP .net MVC 4 中的模型。模型确实被创建但属性未填充。

我的JavaScript:

   $.ajax({
     type: 'POST',
        url: "/Admin/" + method,
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(form.serializeArray()),
        success: function (data) {
            if (data.Success == true) {


            }
        }
    });

我的课:

public class Taxes {
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Rate { get; set; } }

我的方法:

[HttpPost]
public JsonResult AddTax(Taxes tax)
{

    return Json(new { Success = true, tax.Id });
}

杰森:

[{"name":"Id","value":"1"},{"name":"Name","value":"fsdfs"},{"name":"Rate","value":"18"}]

结果是:

Id = 0
Name = Null
Rate = 0
4

1 回答 1

2

好吧,您已经写出了您的问题所在,但您只是没有阅读它。您对 JSON.stringify(form.serializeArray())的调用正在为您生成:

[{"name":"Id","value":"1"},{"name":"Name","value":"fsdfs"},{"name":"Rate","value":"18"}]

只能映射到这样的东西:

IEnumerable<SampleClass> model

SampleClass 具有以下属性的位置:

public class SampleClass
    {
         public string name {get;set;}
         public string value {get;set;}
    }

您需要不同类型的方法,其中一种方法将:

  1. 为您创建 javascript 对象
  2. 对于使用 form.serializeArray() 创建的数组的每个成员,它将向名称为 member.name 和值为 member.value 的对象添加属性

JSON.stringify 然后将生成您的 Taxes 类的正确 JSON 表示。

在此处检查实现:

https://github.com/hongymagic/jQuery.serializeObject

于 2013-09-21T06:23:55.937 回答