筛选具有特定值类的列表

时间:2012-09-18 11:15:41

标签: asp.net-mvc-3 class c#-4.0

我有一个Responsiblity类,它包含一些子类 以下是课程: -

public class Responsibility
{
    private Frequency _FrequencyInfo = new Frequency();
    private ResponsibilityCategory _CategoryInfo = new ResponsibilityCategory();
    private Status _StatusInfo = new Status();

    public int ResponsibilityId { get; set; }
    public string ResponsibilityName { get; set; }
    public string Description { get; set; }
    public Frequency FrequencyInfo
    {
        get { return _FrequencyInfo; }
        set { _FrequencyInfo = value; }
    }
    public ResponsibilityCategory CategoryInfo
    {
        get { return _CategoryInfo; }
        set { _CategoryInfo = value; }
    }
    public Status StatusInfo
    {
        get { return _StatusInfo; }
        set { _StatusInfo = value; }
    }
}

下面是我用来绑定列表的代码。但是我得到了该类的所有元素。 我只想要班上的两个元素。

Responsibility newResponsibilty = new Responsibility();
        newResponsibilty.ResponsibilityId = ResponsibilityId;
        new iNGRID_Data.Ops.DataMethods().dbrGetResponsibilityDetailsInSpecifiedResponsibilty(ref newResponsibilty, ResponsibilityId, ref err);
        List<Responsibility> listResponsibilty = new List<Responsibility>();
        listResponsibilty.Add(newResponsibilty);

        JavaScriptSerializer jsonserialize = new JavaScriptSerializer();
        string result = jsonserialize.Serialize(listResponsibilty);
        return Content(result);

我想用2个对象ResponsibiltyName和Description来序列化这个列表。 请建议。

1 个答案:

答案 0 :(得分:1)

不要手动JSON序列化它们。通过返回Json结果将其留给框架。你也不需要一份清单。您可以返回包含您感兴趣的属性的匿名对象:

public ActionResult SomeAction()
{
    Responsibility newResponsibilty = new Responsibility();
    newResponsibilty.ResponsibilityId = ResponsibilityId;
    new iNGRID_Data.Ops.DataMethods().dbrGetResponsibilityDetailsInSpecifiedResponsibilty(ref newResponsibilty, ResponsibilityId, ref err);
    var result = new
    {
        name = newResponsibilty.ResponsibiltyName, 
        description = newResponsibilty.Description
    };
    return Json(result, JsonRequestBehavior.AllowGet);
}

在您的AJAX成功回调中,您可以阅读这些属性:

success: function(result) {
    // you could use result.name and result.description here
}