在我的视图中,我想用逗号分隔显示来宾ID,但我不知道如何。现在它看起来像下面的图像。 16和17是来自独立客人的Id。这很令人困惑。
我的模型看起来像这样:
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?
答案 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);