c# - 如何在 View 中包装列表列

标签 c# css asp.net-mvc

我有一个数据表,其中一列是 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.TryParseint.Parse

然后在 UI 上循环遍历列表并根据需要呈现数据。

关于c# - 如何在 View 中包装列表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55905640/

相关文章:

html - 为移动设备缩放 html 电子邮件签名

css - Google 字体未在实时网站上显示

asp.net-mvc - Web Api 2 路由属性的全局路由前缀?

c# - 如何获取 DataGridView 行值并将其存储在变量中?

c# - 这个 C# 语法叫什么,它有什么作用?

c# - 电池电量 c#

css - 在特定子页面上隐藏 Ionic TabBar (IONIC 3)

c# - 在 BlockingCollection 中处理异常

asp.net-mvc - 在 ASP.NET MVC 中使用 Tempdata - 最佳实践

c# - 在动态创建的 Html.AutoCompleteFor 中使用 typeahead-mvc-model