【发布时间】:2014-12-26 17:33:18
【问题描述】:
我希望根据数据库中的值来验证特定请求。这是一个复杂的场景,但我将尝试在一个示例中对其进行简化。
假设我有以下模型:
public class CustomerModel
{
public int AgencyId { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
当一个 POST 请求进来时,我需要进行调用,以获取传递的 AgencyId 的某些要求。
var requirements = _repository.GetRequirementsForAgency(model.AgencyId);
我从数据库中获取的信息会告诉我需要哪些属性,每个机构可能会有所不同。例如,一个机构可能需要姓名和年龄,而另一机构可能只需要姓名。需求对象看起来像这样:
public class Requirement
{
public string PropertyName { get; set; }
public bool IsRequired { get; set; }
}
那么,我的问题是,在将该模型提交到数据库之前对其进行验证的最佳方法是什么?理想情况下,我希望代理机构能够更改这些要求,因此,我希望尽可能避免硬编码验证。
我的第一个想法是调用一个需求列表,然后通过 PropertyName 搜索每个需求,然后检查是否有值,但我不确定这是否是最好的方法。
然后我查看了数据注释,但没有找到在运行时添加属性的方法。
【问题讨论】:
-
与论坛网站不同,我们不使用“谢谢”、“任何帮助表示赞赏”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
标签: c# asp.net validation asp.net-web-api