如何在视图中的项目之间获取逗号?

时间:2015-03-16 12:22:43

标签: c# asp.net

在我的视图中,我想用逗号分隔显示来宾ID,但我不知道如何。现在它看起来像下面的图像。 16和17是来自独立客人的Id。这很令人困惑。

enter image description here

我的模型看起来像这样:

public class Guest
{
    [Key]
    public int GuestId { get; set; }
    //Vreemde sleutel van Reservation
    public Int32? ReservationId { get; set; }
}

生成View的控制器如下所示:

public ActionResult Index()
    {
        return View(_reservationrepository.GetAllReservations());
    }

public IQueryable GetAllReservations()
    {
        return db.Reservations.Include(r => r.spot).Include(r => r.User).Include(r => r.Guests);

    }

显示ID的我的视图如下所示:

@foreach (var item in Model) {
<tr>
    <td>
        @Html.DisplayFor(modelItem => item.Guests)
    </td>
</tr>
}

如何以逗号分隔来宾ID?

3 个答案:

答案 0 :(得分:2)

如果您的视图包含Guest个对象的集合(暂时让我们称之为Model.Guests),那么您可以将ID加入分隔的字符串中:

@string.Join(",", Model.Guests.Select(g => g.GuestId))

或者,取决于视图模型的语义上下文(如果它仅用于视图而不是真正的业务模型),那么您甚至可以将其放在模型本身上:

public string GuestIDs
{
    get
    {
        return string.Join(",", Guests.Select(g => g.GuestId));
    }
}

并将视图绑定到该属性:

@Model.GuestIDs

答案 1 :(得分:2)

您可以通过将结果与

结果相加来包含逗号
@string.Join(",", Model.Guests.Select(g => g.GuestId))

答案 2 :(得分:0)

您可以像这样用逗号分隔<int>列表。

// old way
List<int> list = ...;
string.Join(",", list.Select(n => n.ToString()).ToArray());

// new way - just pass in list, no need to call .ToArray()
var list = new List<int> { 1, 2, 3 };
string.Join(",", list);