首页 > 解决方案 > 用 ControllerBase.TryValidateModel 替换 ApiController.Validate

问题描述

为了单元测试的目的,我需要使用它们的数据注释属性手动验证各种对象。我知道我可以使用Validator.TryValidateObject. 问题是它不能递归地工作。

我试图利用ApiController. 它工作得很好,但ApiController对于较新版本的 .NET 来说已经过时了。我不在乎,但我在工作中需要这个功能。

public class ValidationController : ApiController
{
    public ValidationController()
    {
        this.Request = new HttpRequestMessage();
        this.Request.SetConfiguration(new HttpConfiguration());
    }

    public bool IsValid<T>(T modelToValidate)
    {
        this.ModelState.Clear();
        this.Validate(modelToValidate);
        return this.ModelState.IsValid;
    }
}

ValidationControllerControllerBase. 我尝试使用它的TryValidateModel(). 但是我无法初始化该类以使该方法起作用。

你知道如何初始化ControllerBase以使验证工作吗?

标签: c#validationasp.net-coredata-annotations

解决方案


推荐阅读