窗体中的模型绑定

本文关键字:绑定 模型 窗体 | 更新日期: 2023-09-27 18:32:10

我正在尝试将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

窗体中的模型绑定

好吧,你已经写了你的问题是什么,但你只是没有阅读它。您的来电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 和值向对象添加属性会员值

然后,JSON.stringify 将生成 Tax 类的正确 JSON 表示形式。

在此处检查实现:

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