此代码获取在我的 .cshtml 页面中显示的唯一组织名称列表:
IEnumerable<dynamic> data = db.Query("Select * from provider
where submitter_element = '210300'");
//the 210300 could be any value passed to the query
var items = data.Select(i => new { i.org_name }).Distinct();
foreach(var name in items){
<text>@name.org_name<br></text>
每个记录data
本身都是唯一的,但每个字段中的数据包含相同的值,即多个提供者具有相同的 org_name。
我希望能够重复使用data
多次来创建多个唯一列表。我希望将其传递给@helper 进行显示。为此,我有以下内容:
@helper ListBoxDistinctDisplay(IEnumerable<dynamic> queryResult)
{
IEnumerable<dynamic> distinctItems = queryResult.Select(i => new { i.org_name }).Distinct();
foreach(var listItem in distinctItems){
<text>@listItem.org_name<br></text>
}
然后在我的 .cshtml 页面中,我这样做:
@DisplayHelpers.ListBoxDistinctDisplay(data)
...和宾果游戏,我在“查看”页面上获得了我的唯一列表。
工作完美,除了你看到我必须在助手中指出 .org_name 。
我的问题是如何将字段名称(org_name)传递给助手,以便无论他的字段名称如何,我的助手都可以重复使用?
或者......我不知道有一种完全不同的方法吗?
谢谢!