是否有一种“简单的方法”可以忽略Asp.Net Core中类型集合上的模型序列化的属性?
样品
public sealed class MainViewModel
{
public Guid Id { get; set; }
[JsonIgnore("PropertyInSubViewModel")]
public ICollection<SubViewModel> Products { get; set; }
}
这个想法是从模型序列化中移除SubViewModel
中的一些属性,所以当我在我的操作中得到它时,它将具有默认值集,而不是通过请求设置的值。
不是JsonIgnore
。这只能应用于您要忽略的实际属性,并且在该点处保持不变。但是,JSON.NET确实支持conditional serialization。最简单,最直接的方法是在课堂上添加ShouldSerialize*
方法。你显然需要确定一些你可以依赖的条件来确定,但这可能是一个直接的,因为在你的子视图模型实例上字面设置一些布尔值。基本上,你只需添加以下内容:
public class SubViewModel
{
...
public bool ShouldSerializePropertyInSubViewModel()
{
// return true or false to either allow or disallow serializing the property on this instance
}
}