如何从ASP.NET Core中的ModelValidatorContext获取Controller数据

时间:2016-11-06 01:01:50

标签: c# validation asp.net-core asp.net-core-mvc model-validation

我有一个自定义模型验证器:

import urllib.request
import json

url = "https://en.wikipedia.org/w/api.php?action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=json"
req = urllib.request.urlopen(url)
page = json.dumps(req)
print(page)

让我们说,为了验证的目的,我需要从控制器获取一些数据。我不是Reflection voodoo的专家,但我可以获得关于控制器的一些数据:

public class MyvalidationAttribute : Attribute, IModelValidator {
    public IEnumerable<ModelValidationResult> Validate(ModelValidationContext context) {
    ...
    }
}

var descriptor = context.ActionContext.ActionDescriptor as ControllerActionDescriptor;

但是如果我在控制器中有一个变量,比如说,通过DI传递的DbContext存储库(虽然我怀疑它是否重要) - 如何从验证器访问该变量?

注意:我简化了MCVE目的的用例。我意识到这是一个非常脆弱的方法,当我需要做的就是进行远程验证时,有更好的方法进行验证。我的用例大不相同。

0 个答案:

没有答案