如何在 Blazor(子)组件中引用“@typeparam TModel”字段?

How can I reference a "@typeparam TModel" field in the Blazor (sub)-component?

VS-2019 Core 5 Blazor 客户端组件定义了一个@typeparam TModel 以使用

private List<TModel> _allModelRecs { get; set; }

如下代码所示。记下 (a) "ddlOtherModel_Value" 和 (b) TModel class ...

的 "UID_MODEL" 字段
// Select first 'Record'.
IDictionary<int, string> _ModelFiltersList = (Dictionary<int, string>)_ModelFiltersList.OrderBy(r => r.Value);
TModel _OtherModel = _allModelRecs.Where(r => r.**UID_MODEL** == _ModelFiltersList.First().Key);
int ddlOtherModel_Value = _OtherModel.**UID_MODEL**;

由于此组件可以而且必须与不同的“TModel(s)”(客户、车辆、部门...等)一起工作,我需要将“ddlOtherModel_Value”设置为“键”- TModel 的 instance/record 的值。每个 TModel 的关键字段名称都不同:UID_CUSTOMER、UID_VEHICLE、UID_DEPARTMENT...等

在上面的代码片段中,这个问题显示了“UID_MODEL”——它不是实际的关键字段名称。

这里是问题... 我如何为“UID_MODEL”的实际 TModel 键名中的这些变体编码?

欢迎您提出意见或问题或答案。谢谢约翰

基本上你不应该。 UID 应该在抽象 TModel 上定义。

如果出于某种原因您无法控制,那么您将需要实施一些扩展来获取 ID。例如,您可以实现一个包装器 class 或一组静态扩展方法。另一种选择是使用反射来获取以“UID”开头的字段,但这可能很慢。