我有一个数据表,其中一列是 linq 查询返回的列表。
列表看起来像这样:
OFAC,EPLS,UNCON,IEO,EPLS,HHS,EPLS,HHS,EPLS,EPLS,HHS,IEO
我希望列值在新行中用逗号分隔。
我不确定我是否应该在后端执行此操作,或者我是否应该尝试使用 CSS 来完成此操作?
这是我的代码示例:
internal List<string> GetListTitles(long id_validation_results)
{
var list = new List<string>();
using(var db = new fabitrack_validationEntities(ValidationConnString))
{
list = db.ValidationSpecifics.Where(o => o.id_validation_results == o.id_validation_results)
.Select(o => o.title).ToList();
}
return list;
}
<tbody>
@foreach (var o in Model.Results)
{
<tr>
@if (o.Person.FirstName == null || o.Person.FirstName == "" || o.Person.FirstName == "NOT")
{
<td>Not Found</td>
}
else
{
<td>@Html.ActionLink(o.Person.FirstName, "Detail", "Player", new { selectedPlayerID = o.Person.IDPerson, referringController = "ValidationHistory" }, null)</td>
}
@if (o.Person.LastName == null || o.Person.LastName == "" || o.Person.LastName == "FOUND")
{
<td>Not Found</td>
}
else
{
<td>@Html.ActionLink(o.Person.LastName, "Detail", "Player", new { selectedPlayerID = o.Person.IDPerson, referringController = "ValidationHistory" }, null)</td>
}
<td>@o.Person.SocialSecurityNumber</td>
<td>@o.Validation_Results.IRSOk</td><!--IRS/TIN-->
<td>@o.Validation_Results.DMFOk</td><!--DMF Details-->
<td>@o.Validation_Results.ListOk</td><!--List Matches-->
<td>@o.Validation_Results.ExecutedAt<!--Executed At-->
<td>@o.Validation_Results.ExecutedBy</td><!--Executed By-->
<td>@o.Person.ClubID</td>
<td id="listcol">@o.ListMatches</td>
</tr>
}
</tbody>
然后我尝试了一些 CSS..
#listcol {
display: -ms-flexbox; /* IE 10 */
display: -webkit-flex; /* Safari 6.1+. iOS 7.1+ */
display: flex;
-webkit-flex-flow: wrap column; /* Safari 6.1+ */
flex-flow: wrap column;
max-height: 150px;
}
最佳答案
您不应使用逗号 (,) 和 CSS 驱动显示逻辑。这是一个反模式。将来您可能需要将逗号等分隔符更改为分号。而是从 Controller 将数据作为列表发送。
您可以使用此处回答的以下代码:How can I convert comma separated string into a List<int>
string csv = "1,2,3,4,a,5,0,3,r,5";
int mos = 0;
var intList = csv.Split(',')
.Where(m => int.TryParse(m, out mos))
.Select(m => int.Parse(m))
.ToList();
//返回一个整数列表:1, 2, 3, 4, 5, 0, 3, 5
现在你有一个整数列表。你可以为字符串做同样的事情。只需更改数据类型并删除查询中的 int.TryParse
和 int.Parse
。
然后在 UI 上循环遍历列表并根据需要呈现数据。
关于c# - 如何在 View 中包装列表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55905640/