如何使用Javascript从列表中获取类的静态变量的值

How do you get the value of a static variable of a class from a list with Javascript

本文关键字:静态 变量 获取 何使用 Javascript 列表      更新时间:2023-09-26

我有一个javascript应用程序,从c# -WebMethod中获取数据。WebMethod返回一个对象列表。对象的类有一个静态属性,我将在javascript中读取这个属性。下面的代码可能会更好地解释这个问题:

类:

public class DayEntryBT{
     public static string date { get; set; }
     public string name { get; set; }
     //some more...
}

WebMethod:

[WebMethod]
public List<DayEntryBT> getDayEntries()
{
    List<DayEntryBT> listOfEntries = new List<DayEntryBT>();
    //some sql...
    while (reader.Read()){
        DayEntryBT day = new DayEntryBT();
        DayEntryBT.date = reader["date"];
        day.name = reader["name"];
        listOfEntries.add(day);
    }
    return listOfEntries;
}

和Javascript:

        $.ajax({
        type: "POST",
        url: "DataProviderBT.asmx/getDayEntries",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (resp) {
            alert(resp.d.date); //HOW TO GET THE STATIC ATTRIBUTE date HERE??????
            alert(resp.d[0].name); //THIS WORKS!!!
        }
    });

如何从javascript的静态属性中获取和设置值?

为了解决这个问题,你可以像这样改变你的DayEntryBT

public class DayEntryBT{
    public static string StaticDate { get; set; }
    public string date {get { return StaticDate; }}
    public string name { get; set; }
    //some more...
}

之后你可以得到

$.ajax({
    type: "POST",
    url: "DataProviderBT.asmx/getDayEntries",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (resp) {
        alert(resp.d[0].date); //this works, with value of static field
        ....
    }
});

你也可以看到自定义序列化器