使用上下文验证模型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用上下文验证模型相关的知识,希望对你有一定的参考价值。
我想根据给定的条件验证传入的JSON。对于例如我有一个模型类定义为,
public class Component
{
public string Id {get; set;}
[JsonProperty]
[Required]
public string Name { get; set; }
[JsonProperty]
public string Description { get; set; }
}
对于POST请求,我想确保调用者不发送Id属性值,因为它将由服务生成。但是,对于PUT请求,我想验证是否指定了Id属性值。我有多个需要类似功能的JSON。在控制器操作的上下文中强制进行模型验证的最佳方法是什么?我使用FluentValidation来验证JSON属性,但它不考虑上下文(控制器操作)。
答案
我看待它的方式,如果您不需要用户发送ID,那么您的模型类中没有ID。
拥有多个模型是完美的,一个用于PUT,一个用于POST。这很好,因为人们知道应该通过什么属性。
所以底线:只有你在模型中需要的属性,仅此而已,这可以阻止任何歧义,并提供更高效的API。
还有一件事需要考虑,PUT通常不需要ID,因为其中一个实际上在URL中。如果URL中没有,那么您需要在模型中使用一个。
以上是关于使用上下文验证模型的主要内容,如果未能解决你的问题,请参考以下文章