首页 > 解决方案 > 使用 Razor @Html.DisplayFor 显示以逗号分隔的数据列表

问题描述

如何使用@Html.DisplayFor(...) 显示数据列表,以逗号分隔。

例如,型号:

public class Player
{
   public int Id { get; set; }
   public List<int> scores { get; set; }
}

如果 player.scores 包含数据 8,9,10。

 @Html.DisplayFor(model => model.scores);

输出将类似于:8910;

是否可以显示以逗号分隔的数据,例如 8,9,10 ?

标签: asp.netrazormodel-view-controller

解决方案


在您的情况下使用没有意义@Html.DisplayFor(...)(并且它无论如何都无法工作,因为表达式不能包含转换值的方法)。

DisplayFor()当您使用自定义时很有用DisplayTemplate,或者您已将 a[DisplayAttribute]应用于属性(并且该属性是DateTime或您希望以特定方式格式化的数字类型)。

如果您确实想使用DisplayFor(),那么您必须向视图模型添加另一个属性,例如

public string Score { get; set; }

在 GET 方法中,您可以使用

model.Score = String.Join(", ", model.scores);

并且在视图中

@Html.DisplayFor(m => m.Score)

或者,您可以只使用

@String.Join(", ", model.scores)

直接在视图中(否DisplayFor()


推荐阅读