我有一个自定义模型验证器:
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目的的用例。我意识到这是一个非常脆弱的方法,当我需要做的就是进行远程验证时,有更好的方法进行验证。我的用例大不相同。