我在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>
答案 0 :(得分:35)
如果您尚未使用剃刀代码块,则只需在if
语句前加@
前缀。
编辑:您现在的代码存在一些问题。
您宣布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>
的简写,用于强制剃刀引擎渲染文本。
另一件事,HTML标准指定a
标记只能包含内联元素,而现在,你在div
中放置一个块级元素a
{1}}。
答案 1 :(得分:0)
每次使用html语法时,都必须用@开始下一个razor语句。所以应该是@if ....