2014-10-31 58 views
0

這不是asp.net的MVC,這是asp.net web表單對象屬性是在asp.net的WebMethod Ajax回調後空

我想送的對象字面這樣

templateProperties = {} 

,並在發送之前我的AJAX調用這樣

$.ajax({ 
    beforeSend:updateTemplateProperties, 
    type: "POST", 
    url: templatePropertiesUpdateUrl, 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    data: JSON.stringify({ "templateProperties": templateProperties }), 
}).done(function (data) { 
    log(data.d); 
}); 

我打電話功能:

updateTemplateProperties = function() { 

    templateProperties.NameFont = "qwq"; 
    templateProperties.NameBold = true; 
    templateProperties.NameItalic = false; 
    templateProperties.NameFontColor = "#FFF"; 
    templateProperties.NamePositionX = 52; 
    templateProperties.NamePositionY = 896; 
    templateProperties.NameSize = 23; 

    templateProperties.DateFont = "ssda"; 
    templateProperties.DateBold = false; 
    templateProperties.DateItalic = true; 
    templateProperties.DateFontColor = "#EEE"; 
    templateProperties.DatePositionX = 47; 
    templateProperties.DatePositionY = 236; 
    templateProperties.DateSize = 12; 

} 

ADN我的webmethod是這樣

[WebMethod] 
public static string UpdateTemplateProperties(TemplateProperties templateProperties) 
{ 
    var serializer = new JavaScriptSerializer(); 
    return serializer.Serialize(templateProperties); 
} 

,這是我TemplateProperties類

[Serializable] 
public class TemplateProperties 
{ 
    public string NameFont { get; set; } 
    public string NameBold { get; set; } 
    public string NameItalic { get; set; } 
    public string NameFontColor { get; set; } 
    public string NamePositionX { get; set; } 
    public string NamePositionY { get; set; } 
    public string NameSize { get; set; } 

    public string DateFont { get; set; } 
    public string DateBold { get; set; } 
    public string DateItalic { get; set; } 
    public string DateFontColor { get; set; } 
    public string DatePositionX { get; set; } 
    public string DatePositionY { get; set; } 
    public string DateSize { get; set; } 
} 

檢查templateProperties時,我發現整個對象的屬性爲null

{"NameFont":null,"NameBold":null,"NameItalic":null,"NameFontColor":null,"NamePositionX":null,"NamePositionY":null,"NameSize":null,"DateFont":null,"DateBold":null,"DateItalic":null,"DateFontColor":null,"DatePositionX":null,"DatePositionY":null,"DateSize":null} 

我沒有從這個電話中得到任何錯誤,我試過了我知道的一切,但它不工作 通常我逐個將參數傳遞給webmethod,但這次他們太多了,所以我想發送整個對象作爲一個實體

+0

何時,何地以及如何檢查templateProperties?嘗試更緊密地發佈您的代碼,因爲操作順序對您的問題非常重要。 – Sacho 2014-10-31 06:56:45

+0

1:在控制檯中的瀏覽器調試工具中,2:在visual studio 3中的調試模式下:這是所有的代碼! – 2014-10-31 06:59:41

+0

這並不能告訴我*哪個* templateProperties是空的,但我想我有一個想法是什麼問題,無論如何。 – Sacho 2014-10-31 07:00:29

回答

0

由於某種原因beforeSend回調函數updateTemplateProperties被調用,但templateProperties在發送數據之前沒有被正確初始化,我只是在開始ajax調用之前調用updateTemplateProperties函數,它現在正在工作,但我真的不知道爲什麼它不工作way