【发布时间】:2018-09-04 17:07:35
【问题描述】:
是否有一种“简单的方法”可以忽略来自 Asp.Net Core 中某个类型集合的模型序列化中的属性?
示例
public sealed class MainViewModel
{
public Guid Id { get; set; }
[JsonIgnore("PropertyInSubViewModel")]
public ICollection<SubViewModel> Products { get; set; }
}
这个想法是从模型序列化中删除 SubViewModel 中的一些属性,所以当我在我的操作中得到它时,它会设置它的默认值,而不是通过请求设置的那个。
【问题讨论】:
-
为什么要使用具有您不想要的属性的模型?
-
只是为了确认一下,当嵌套在
MainViewModel中时,您想忽略SubViewModel的某些属性,但在独立序列化时不?或者您真的想在特定方法调用中忽略SubViewModel的某些属性?前者相当棘手,请参阅Json.NET serialize by depth and attribute。后者可能更容易,请参阅ASP.NET Core API JSON serializersettings per request 加上Exclude property from serialization via custom attribute (json.net)。 -
当
SubViewModel嵌套在MainViewModel中时,我想忽略一个属性,当单独使用时,它会暴露所有属性。
标签: asp.net-mvc asp.net-core json.net