Javascript asp.net webmethod中的ajax回调后,对象属性为空

Javascript asp.net webmethod中的ajax回调后,对象属性为空,javascript,c#,asp.net,ajax,webforms,Javascript,C#,Asp.net,Ajax,Webforms,这不是asp.net mvc,这是asp.net webforms 我正试图像这样发送对象文字 templateProperties = {} $.ajax({ beforeSend:updateTemplateProperties, type: "POST", url: templatePropertiesUpdateUrl, contentType: 'application/json; charset=utf-8', dataType: 'json

这不是asp.net mvc,这是asp.net webforms

我正试图像这样发送对象文字

templateProperties = {}
$.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);
});
我的ajax调用是这样的

templateProperties = {}
$.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;

}
我的网络方法是这样的

[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,但这次它们太多,无法这样做,因此我想将整个对象作为一个实体发送,因为某些原因,调用了beforeServer回调函数updateTemplateProperties,但在发送数据之前templateProperties未正确初始化,我只是在开始ajax调用之前调用updateTemplateProperties函数,它现在可以工作了,但我真的不知道为什么它不能以这种方式工作

您在何时、何地以及如何检查templateProperties?请尝试更连贯地发布代码,因为操作顺序对您的问题相当重要。1:在浏览器调试工具的控制台中,2:在visual studio的调试模式中,3:这是所有代码!这并没有告诉我哪个templateProperties是空的,但我想我已经知道问题是什么了。请把问题读到最后,我已经在问题的最后发布了ajax调用的返回。在visual Studio中的调试模式中也是如此studio@sacho你刚才添加的答案在哪里!!!