【问题标题】:Can I do ASP.NET MVC model validation without a View?我可以在没有视图的情况下进行 ASP.NET MVC 模型验证吗?
【发布时间】:2014-09-15 03:53:50
【问题描述】:

我是否可以在没有 MVC 视图的情况下利用 ASP.NET MVC 模型验证(例如使用 DataAnnotations)(因此没有通过视图获得的自动模型绑定魔法)?

例如,我可能有一个 webhook 直接点击控制器操作 - 没有视图 - 我手动填充我的模型,但我仍然希望从我的模型属性上的 DataAnnotation 验证中受益。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    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

    【讨论】:

    • TryValidateModel 在这里也出现相关...?另外关于您的评论“您给我的示例看起来您想通过 WebApi 公开业务逻辑。”,这本身不是我的意图。即使我直接点击我的控制器(没有视图),在这种情况下我仍然没有使用 WebApi。所以对我来说可能是个糟糕的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2011-04-18
    • 1970-01-01
    相关资源
    最近更新 更多