【发布时间】:2021-12-06 10:12:58
【问题描述】:
我们的 VS-2019 解决方案适用于为 .Net CORE-5 配置的 PWA 模板。
我在 PWA 应用程序代码中为 CRUD 验证编码时遇到了困难。
VS-2019 解决方案包含三个项目。
DB-model 类代码和自定义 ValidationAttribute 代码在 SHARED 项目 中。
DB-API 接口和代码在SERVER 项目 中定义(对每个模型类使用“存储库”)。
UI "CRUD" HTML 和 @code 位于 CLIENT 项目中。
我们对模型类和字段中的每个 CRUD 字段酌情使用 DataAnnotation 和自定义 ValidationAttribute(s)。
我们要求在添加或编辑“客户”记录时,“客户名称”必须与所有其他“客户”不同。 我们有一个自定义 ValidationAttribute,它在验证期间被调用,当“CustomerName”不唯一时,它应该出现在 UI 中。 测试其他重复“客户名称”的算法相当简单,但它需要从所有其他“客户”中获取“客户名称”列表。
所以问题是,当从 SERVER 代码调用时,如何从 SERVER 代码中获取“客户名称”列表strong>SHARED 代码来确定“客户名称”是否唯一?以下 INJECT 代码(在 SERVER 项目中定义)始终为 SHARED 代码中的“CustomerService”变量返回 NULL -- 从而阻止了从数据库获取数据的能力。
[Inject] public ICustomerService CustomerService { get; set; }
我们在 VS 解决方案中有以下项目依赖项:
- 客户依赖于共享。
- 服务器依赖于共享和客户端。
- SHARED 没有依赖关系 -- 因为 -- VS 抱怨循环依赖关系。
我不知道“下一步该做什么”。
额外考虑...在 CLIENT/UI OnSubmit 事件中,我已经成功地使用 DB 函数测试了唯一性 BUT BUT BUT ...我不知道如何使 ErrorMessage 出现在验证摘要中。有什么想法吗?
欢迎您提出问题、cmets 和解决方案。
【问题讨论】:
标签: visual-studio validation blazor progressive-web-apps data-annotations