我对 MVC View 中的 IF 语句有疑问。我正在尝试使用它为每三个项目创建行。
<div class="content">
<div class="container">
@if (ViewBag.Articles != null)
{
int nmb = 0;
foreach (var item in ViewBag.Articles)
{
if (nmb % 3 == 0) {
<div class="row">
}
<a href="@Url.Action("Article", "Programming", new { id = item.id })">
<div class="tasks">
<div class="col-md-4">
<div class="task important">
<h4>@item.Title</h4>
<div class="tmeta">
<i class="icon-calendar"></i> @item.DateAdded - Pregleda:@item.Click
<i class="icon-pushpin"></i> Authorrr
</div>
</div>
</div>
</div>
</a>
if (nmb % 3 == 0) {
</div>
}
}
}
</div>
</div>
最佳答案
你只需要在前缀前加一个 if
声明 @
如果您尚未进入 Razor 代码块。
编辑:您的代码现在有一些问题。
您要声明 nmb
,但实际上从未对该值做任何事情。所以你需要弄清楚它实际上应该做什么。为了修复您的代码,您需要进行一些微小的更改:
@if (ViewBag.Articles != null)
{
int nmb = 0;
foreach (var item in ViewBag.Articles)
{
if (nmb % 3 == 0)
{
@:<div class="row">
}
<a href="@Url.Action("Article", "Programming", new { id = item.id })">
<div class="tasks">
<div class="col-md-4">
<div class="task important">
<h4>@item.Title</h4>
<div class="tmeta">
<i class="icon-calendar"></i>
@item.DateAdded - Pregleda:@item.Click
<i class="icon-pushpin"></i> Authorrr
</div>
</div>
</div>
</div>
</a>
if (nmb % 3 == 0)
{
@:</div>
}
}
}
这里的重要部分是 @:
.这是<text></text>
的简写,用于强制 Razor 引擎呈现文本。
另外一件事,HTML 标准规定 a
标签只能包含行内元素,而现在,您要放置一个 div
,这是一个 block 级元素,位于 a
中.
关于c# - View 中的 MVC If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20893628/