【发布时间】:2014-09-15 03:53:50
【问题描述】:
我是否可以在没有 MVC 视图的情况下利用 ASP.NET MVC 模型验证(例如使用 DataAnnotations)(因此没有通过视图获得的自动模型绑定魔法)?
例如,我可能有一个 webhook 直接点击控制器操作 - 没有视图 - 我手动填充我的模型,但我仍然希望从我的模型属性上的 DataAnnotation 验证中受益。
【问题讨论】:
标签: asp.net-mvc
我是否可以在没有 MVC 视图的情况下利用 ASP.NET MVC 模型验证(例如使用 DataAnnotations)(因此没有通过视图获得的自动模型绑定魔法)?
例如,我可能有一个 webhook 直接点击控制器操作 - 没有视图 - 我手动填充我的模型,但我仍然希望从我的模型属性上的 DataAnnotation 验证中受益。
【问题讨论】:
标签: asp.net-mvc
DataAnnotation 是 System.ComponentModel.DataAnnotations.dll 的一部分,随 .Net Framework 提供。
请随意使用。
您给我的示例看起来您想通过 WebApi 公开业务逻辑。
简短的回答是可以,您可以使用。
不过,最重要的是,看看通过引入 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
【讨论】: