2017-05-25 37 views
0

我有這個ajax調用;Ajax發佈數據在服務器方法取消

var insertOrUpdate = function (url, callback, data) { 
     $.post(url, data, callback); 
    } 

並且數據是;

{"Companies":[],"HoldingCompanyId":3,"VatRegistrationNumber":"321-3123-45","Name":"gkjhgasdg g jghasfk jg","Created":"2017-05-23T00:00:00","CreatedBy":12,"LastModified":null,"LastModifiedBy":0} 

在我的控制器上,我有;

public ActionResult InsertOrUpdate(HoldingCompany holdingCompany) 
{ 
    ... 
} 

其中HoldingCompany被定義爲;

public class HoldingCompany : IHoldingCompany, IAuditInfoCreated, IAuditInfoModified 
    { 
     [Key] 
     public int HoldingCompanyId { get; set; } 

     public string VatRegistrationNumber { get; set; } 
     public string Name { get; set; } 
     public virtual ICollection<Company> Companies { get; set; } 
     public DateTime Created { get; set; } 
     public int CreatedBy { get; set; } 
     public DateTime? LastModified { get; set; } 
     public int LastModifiedBy { get; set; } 
    } 
} 

但是,當數據發佈時,所有字段都設置爲空值或默認值。這是爲什麼?

回答

3

您可能需要設置Content-Type請求頭:

var insertOrUpdate = function (url, callback, data) { 
    $.ajax({ 
     url: url, 
     method: "POST", 
     contentType: "application/json", 
     data: JSON.stringify(data), 
     success: callback 
    }); 
}; 

在這裏,我對你的data變量應用JSON.stringify但如果它是你的問題所示的JavaScript對象,這是唯一需要的。如果它是一個字符串,那麼你不需要將它串起來。

+0

你說得對,我錯過了contentType – arame3333

相關問題