我需要根據可能使用其他註冊服務的數據庫驗證字段。我一直在閱讀documentation,但還沒有找到實際的答案。針對數據庫的ASP.NET核心自定義驗證
有遠程驗證調用控制器方法,但它只是客戶端,所以禁用JS禁用驗證。還有使用驗證屬性的自定義驗證,並且很好地包含在ModelState.IsValid
中,但我無法在其構造函數中注入依賴項。
我發現this question被標記爲回答,因爲它提到了依賴關係解析器,但我找不到任何有用的信息。
我試過研究它,但所有我碰到的只是依賴注射或IServiceProvider
這對我不起作用。下面是我的一些失敗的嘗試:
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
//--1-------------------------------
var container = new ServiceContainer();
var _context = container.GetService<ApplicationDbContext>();
//----------------------------------
//--2-------------------------------
var services = new ServiceCollection();
IServiceProvider servicesProvider = services.BuildServiceProvider();
var _context = servicesProvider.GetService<ApplicationDbContext>();
//----------------------------------
return ValidationResult.Success;
}
每個檢索_context爲空。我真的已經用盡了所有想法,我會很感激任何幫助。
你不應該像[表達] [這裏](https://stackoverflow.com/a/29916075/264697),[這裏](http://blog.ploeh.dk/2014/06/13)/passive-attributes /)和[here](https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=97)。 – Steven