繁体   English   中英

如何在 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; }

如下代码。 注意 TModel 类的 (a) "ddlOtherModel_Value" 和 (b) "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 实例/记录的“键”值。 每个 TModel 的关键字段名称都不同:UID_CUSTOMER、UID_VEHICLE、UID_DEPARTMENT...等。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM