return Json(json, JsonRequestBehavior.AllowGet);
为什么返回的是{"Uid":3,"AGid":0,"Rid":0,"UserName":"xxx","PassWord":"e10adc3949ba59abbe56e057f20f883e","TrueName":"name","Sex":1,"Tel":"13428673730","Sort":1,"ULid":1,"Status":1,"AddTime":"\/Date(1378173600000)\/","Pic":null,"Remark":null,"EntityState":2,"EntityKey":{"EntitySetName":"Admin","EntityContainerName":"WCFTestEntities","EntityKeyValues":[{"Key":"Uid","Value":3}],"IsTemporary":false}}
这些,"EntityState":2,"EntityKey":{"EntitySetName":"Admin","EntityContainerName":"WCFTestEntities","EntityKeyValues":[{"Key":"Uid","Value":3}],"IsTemporary":false是怎么来的,怎么过滤掉这些呢,烦请各位帮忙看看,谢谢。
因为你的json对象就是这些属性!所以就会解析出这些。你可以断点看json对象的属性。
返回的没有这些的啊
@晴.天: 应该是你的这个对象继承了另外一个对象,然后那些属性是父对象的属性。看你用的应该是EF,哈哈~
@幻天芒: 是的我用的是EF,但是没有继承另外一个对象呢。
@晴.天: 多出来的属性是EF相关的属性,把实体代码贴出来下。
@幻天芒:
public ActionResult ReturnJson()
{
Admin json = Entity.Admin.FirstOrDefault(f => f.Uid == 3);
return Json(json, JsonRequestBehavior.AllowGet);
}
@晴.天: 看实体类,看设计看不出什么;从你截的图,看来是继承没错了。
@幻天芒: 实体类是自动生成的
public partial class Admin : EntityObject { #region 工厂方法 /// /// 创建新的 Admin 对象。 /// ///Uid 属性的初始值。 ///UserName 属性的初始值。 ///PassWord 属性的初始值。 ///Sex 属性的初始值。 ///Tel 属性的初始值。 ///Status 属性的初始值。 public static Admin CreateAdmin(global::System.Int32 uid, global::System.String userName, global::System.String passWord, global::System.Byte sex, global::System.String tel, global::System.Int32 status) { Admin admin = new Admin(); admin.Uid = uid; admin.UserName = userName; admin.PassWord = passWord; admin.Sex = sex; admin.Tel = tel; admin.Status = status; return admin; } #endregion #region 基元属性 /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)] [DataMemberAttribute()] public global::System.Int32 Uid { get { return _Uid; } set { if (_Uid != value) { OnUidChanging(value); ReportPropertyChanging("Uid"); _Uid = StructuralObject.SetValidValue(value); ReportPropertyChanged("Uid"); OnUidChanged(); } } } private global::System.Int32 _Uid; partial void OnUidChanging(global::System.Int32 value); partial void OnUidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable AGid { get { return _AGid; } set { OnAGidChanging(value); ReportPropertyChanging("AGid"); _AGid = StructuralObject.SetValidValue(value); ReportPropertyChanged("AGid"); OnAGidChanged(); } } private Nullable _AGid; partial void OnAGidChanging(Nullable value); partial void OnAGidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable Rid { get { return _Rid; } set { OnRidChanging(value); ReportPropertyChanging("Rid"); _Rid = StructuralObject.SetValidValue(value); ReportPropertyChanged("Rid"); OnRidChanged(); } } private Nullable _Rid; partial void OnRidChanging(Nullable value); partial void OnRidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.String UserName { get { return _UserName; } set { OnUserNameChanging(value); ReportPropertyChanging("UserName"); _UserName = StructuralObject.SetValidValue(value, false); ReportPropertyChanged("UserName"); OnUserNameChanged(); } } private global::System.String _UserName; partial void OnUserNameChanging(global::System.String value); partial void OnUserNameChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.String PassWord { get { return _PassWord; } set { OnPassWordChanging(value); ReportPropertyChanging("PassWord"); _PassWord = StructuralObject.SetValidValue(value, false); ReportPropertyChanged("PassWord"); OnPassWordChanged(); } } private global::System.String _PassWord; partial void OnPassWordChanging(global::System.String value); partial void OnPassWordChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public global::System.String TrueName { get { return _TrueName; } set { OnTrueNameChanging(value); ReportPropertyChanging("TrueName"); _TrueName = StructuralObject.SetValidValue(value, true); ReportPropertyChanged("TrueName"); OnTrueNameChanged(); } } private global::System.String _TrueName; partial void OnTrueNameChanging(global::System.String value); partial void OnTrueNameChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.Byte Sex { get { return _Sex; } set { OnSexChanging(value); ReportPropertyChanging("Sex"); _Sex = StructuralObject.SetValidValue(value); ReportPropertyChanged("Sex"); OnSexChanged(); } } private global::System.Byte _Sex; partial void OnSexChanging(global::System.Byte value); partial void OnSexChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.String Tel { get { return _Tel; } set { OnTelChanging(value); ReportPropertyChanging("Tel"); _Tel = StructuralObject.SetValidValue(value, false); ReportPropertyChanged("Tel"); OnTelChanged(); } } private global::System.String _Tel; partial void OnTelChanging(global::System.String value); partial void OnTelChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable Sort { get { return _Sort; } set { OnSortChanging(value); ReportPropertyChanging("Sort"); _Sort = StructuralObject.SetValidValue(value); ReportPropertyChanged("Sort"); OnSortChanged(); } } private Nullable _Sort; partial void OnSortChanging(Nullable value); partial void OnSortChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable ULid { get { return _ULid; } set { OnULidChanging(value); ReportPropertyChanging("ULid"); _ULid = StructuralObject.SetValidValue(value); ReportPropertyChanged("ULid"); OnULidChanged(); } } private Nullable _ULid; partial void OnULidChanging(Nullable value); partial void OnULidChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)] [DataMemberAttribute()] public global::System.Int32 Status { get { return _Status; } set { OnStatusChanging(value); ReportPropertyChanging("Status"); _Status = StructuralObject.SetValidValue(value); ReportPropertyChanged("Status"); OnStatusChanged(); } } private global::System.Int32 _Status; partial void OnStatusChanging(global::System.Int32 value); partial void OnStatusChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public Nullable AddTime { get { return _AddTime; } set { OnAddTimeChanging(value); ReportPropertyChanging("AddTime"); _AddTime = StructuralObject.SetValidValue(value); ReportPropertyChanged("AddTime"); OnAddTimeChanged(); } } private Nullable _AddTime; partial void OnAddTimeChanging(Nullable value); partial void OnAddTimeChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public global::System.String Pic { get { return _Pic; } set { OnPicChanging(value); ReportPropertyChanging("Pic"); _Pic = StructuralObject.SetValidValue(value, true); ReportPropertyChanged("Pic"); OnPicChanged(); } } private global::System.String _Pic; partial void OnPicChanging(global::System.String value); partial void OnPicChanged(); /// /// 没有元数据文档可用。 /// [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)] [DataMemberAttribute()] public global::System.String Remark { get { return _Remark; } set { OnRemarkChanging(value); ReportPropertyChanging("Remark"); _Remark = StructuralObject.SetValidValue(value, true); ReportPropertyChanged("Remark"); OnRemarkChanged(); } } private global::System.String _Remark; partial void OnRemarkChanging(global::System.String value); partial void OnRemarkChanged(); #endregion }
@晴.天: 你看第一句,是继承了吧,哈哈~
@幻天芒: 哦,那我应该怎么过滤掉继承的呢。
@晴.天: 自己写个类,然后进行属性复制。
@幻天芒: 不是很明白,重新写个实体类?
@晴.天: Yes!
"EntityState":2,"IsTemporary":false应该是你查询数据的时候就有了这些数据
而"EntityKey":{"EntitySetName":"Admin","EntityContainerName":"WCFTestEntities","EntityKeyValues":[{"Key":"Uid","Value":3}],这个应该是你返回json对象下的一个子集合吧。。
要过滤掉这些在获取数据的时候取消就可以了、因为本人也是新手、说错勿喷、不过这个可能还是很大的
简单点 使用一个anonymous type 做返回.
var records = from entity in context.Entities select new { Prop1 = entity.Prop1, Prop2 = entity.Prop2, ChildProp = entity.Child.Prop } return Json(records);