我有一个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来序列化这个列表。 请建议。
答案 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
}