【问题标题】:Use Razor @Html.DisplayFor to display list of data separated by comma使用 Razor @Html.DisplayFor 显示以逗号分隔的数据列表
【发布时间】:2019-01-20 21:55:57
【问题描述】:

如何使用@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 ?

【问题讨论】:

  • 尝试加入分数数组的元素,如:@Html.DisplayFor(model => string.Join(",", model.scores));

标签: asp.net razor model-view-controller


【解决方案1】:

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

DisplayFor() 在您使用自定义DisplayTemplate 时很有用,或者您将[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()

【讨论】:

    猜你喜欢
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多