[英]code based repeater in Razor c#
我有以下剃刀代碼:
@foreach (var row in Model)
{
<div><img src="~/Content/images/flickabase/@row.FlickaMasterImage" alt="@row.FlickaMasterImageCaption" class="img-thumbnail" width="100" heigh="100"/>
<a href="/flickas/flickaid/@row.Id/flickaname/@row.FlickaName.Trim()">@row.FlickaName</a> </div>
}
這將打印出一系列縮略圖和船名。 像這樣。
問題是我想寫出四列,數據從上到下,從左到右。 這過去使用 .net 中繼器控制很容易,但我看不出如何使用 Razor 輕松做到這一點。 是否有捷徑可尋? 我想出的最好的主意是計算行數。 除以四,然后(因為我使用 Bootstrap)為每個批次創建一個網格列。
諾布。
謝謝你們的評論。
我最后就是這樣解決的。 我在模型上使用 Skip and Take 來獲取批量數據。 永遠不會有大量數據,當它增長時,我會在未來重新審視。 最后我放棄了圖片。 這四個批次在進行布局的 Bootstrap col 中一一寫出。
我相信有一種更優雅的方式,但現在就可以了。
@{
Layout = "Shared/_Layout.cshtml";
ViewBag.Title = "Flicka Names";
var i = Model.Count(); // count rows
var size = i/4; // get the batch size
var first = Model.Take(size);
var second = Model.Skip(size).Take(size);
var third = Model.Skip(size * 2).Take(size);
var fourth = Model.Skip(size * 3).Take(size);
}
<h1>Flicka Names</h1>
<p>There are @i Flickas in our system.</p>
<div class="col-sm-3">
@foreach (var row in first)
{
<div>
<a href="/flickas/flickaid/@row.Id/flickaname/@row.FlickaName.Trim()">@row.FlickaName</a> </div>
}
</div>
<div class="col-sm-3">
@foreach (var row in second)
{
<div>
<a href="/flickas/flickaid/@row.Id/flickaname/@row.FlickaName.Trim()">@row.FlickaName</a></div>
}
</div>
<div class="col-sm-3">
@foreach (var row in third)
{
<div>
<a href="/flickas/flickaid/@row.Id/flickaname/@row.FlickaName.Trim()">@row.FlickaName</a>
</div>
}
</div>
<div class="col-sm-3">
@foreach (var row in fourth)
{
<div>
<a href="/flickas/flickaid/@row.Id/flickaname/@row.FlickaName.Trim()">@row.FlickaName</a>
</div>
}
正如您已經發現的那樣, razor
沒有現成的解決方案....Bootstrap 是解決此問題的最佳解決方案,正如@B.Yaylaci 已經建議的那樣....請參考以下問題:
希望它有幫助,干杯。:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.