c#在一个不同的选择列表中拆分三个项目,以在一个表中显示每个项目(并添加一个链接)
本文关键字:一个 项目 显示 链接 添加 三个 选择 列表 拆分 | 更新日期: 2023-09-27 18:06:03
我有一个模型,items。对于给定的客户,我有一个基于三个字段值的不同列表。接下来,我需要拆分列表(不只是返回列表),以便可以使用Html Action中的一个字段链接到另一个视图(或返回相关结果)。
我可以得到唯一列表。这很好。我得到了期望的列表。
@foreach (var it in Model.item.Select(y => y.orderno + " " + y.book + " " + y.year).Distinct())
{
{ <tr>
<td width="25%">@Html.DisplayFor(model => it)</td>
<td></td>
</tr>
}
}
但是我需要拆分项目(在我获得不同的值之后),并且能够使用"orderno"将链接传递到另一个视图。
当我得到不同的列表时,我只得到组(我所要求的)。我不知道该怎么分配。我已经尝试了Split(',')在更多的变化比这个。这对我不起作用(可能是我的错误)。
@foreach (var it in Model.item.Select(y => y.item.orderno + " " + y.item.book + " " + y.item.year).Distinct().ToList())
{
List<string> result = it.Split(',').ToList();
{
<tr>
<td width="25%">@Html.DisplayFor(model => it)</td>
<td></td>
</tr>
}
}
split方法接受要拆分列表的字符。在您的示例中,您在逗号字符上进行分割。这里应该被空间分割。
@foreach (var it in Model.item.Select(y => y.item.orderno + " " + y.item.book + " " + y.item.year).Distinct().ToList())
{
List<string> result = it.Split(' ').ToList();
{
<tr>
<td width="25%">@Html.DisplayFor(model => it)</td>
<td></td>
</tr>
}
}
需要用空格而不是逗号分隔。
var result = it.Split();
而且,Split
已经返回一个数组,所以ToList
调用是多余的
你可以这样做:
@foreach (var it in Model.item.Select(y => y.orderno + "," + y.book + "," + y.year).Distinct())
{
var result = it.Split(','); // result will be array
}