2013-09-21 50 views
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 }); 
} 

的JSON:

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

結果是:

Id = 0 
Name = Null 
Rate = 0 
+0

u能解釋一下你已經嘗試過? –

+0

試試這個json,它會填充你的模型[{「Id」:「1」,「Rate」:「18」,「Name」:「fsdfs」}]。 –

回答

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. 創建你
  2. JavaScript對象與form.serializeArray()創建的陣列的每個成員,它將 添加屬性名稱爲member.name並用值 member.value到對象

然後JSON.stringify將生成Taxes類的正確JSON表示。

檢查這裏的實現:

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