我可以在没有MVC视图的情况下利用ASP.NET MVC模型验证(例如使用DataAnnotations)(因此没有使用视图获得的自动模型绑定魔法)吗?
作为一个例子,我可能有一个webhook直接命中控制器动作 - 没有视图 - 我手动填充我的模型,但我仍然希望在我的模型属性上获得DataAnnotation验证的好处。
答案 0 :(得分:4)
DataAnnotation是随.Net Framework一起提供的System.ComponentModel.DataAnnotations.dll的一部分。
请随意使用。
您给我的示例看起来您希望通过WebApi公开Business Logic。
简短回答是,你可以使用。
然而,最重要的是,通过介绍WebApi来了解扩展您的体系结构,以便共享MVC和WebApi之间的代码。
public class Recipe
{
[Required]
public string Name { get; set; }
}
var recipe = new Recipe();
var context = new ValidationContext(recipe, serviceProvider: null, items: null);
var results = new List<ValidationResult>();
var isValid = Validator.TryValidateObject(recipe, context, results);
if (!isValid)
{
foreach (var validationResult in results)
{
Console.WriteLine(validationResult.ErrorMessage);
}
}
参考:http://odetocode.com/blogs/scott/archive/2011/06/29/manual-validation-with-data-annotations.aspx