簡體   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