如何在razor中嵌套代码块

  • 本文关键字:嵌套 代码 razor asp.net razor
  • 更新时间 :
  • 英文 :


我正试图进入剃刀网页,并有这段代码,我不能弄清楚如何在剃刀成功。for循环正常工作,但是一旦我添加了if语句,它就中断了。

                @{
                List<Plant> plants = PlantTableAdapter.Get().Where(t => t.featured).ToList();
                for (int i = 0; i < plants.Count; i++) {
                    if (i % 4 == 0) { 
                        <div class="row">
                    }
                    <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
                    <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
                    <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
                    <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
                    @*if ((i + 1) % 4 == 0) {
                        </div>
                    }*@
                }
            }

似乎无论我尝试什么组合,它就是不起作用。我遇到了这个解决方案ASP。. NET MVC Razor - if在for中for在for中,但我认为因为for已经在代码块中,它破坏了它。

尝试使用@:行标记转义if's中的html

@{
    List<Plant> plants = PlantTableAdapter.Get().Where(t => t.featured).ToList();
    for (int i = 0; i < plants.Count; i++)
    {
        if (i%4 == 0)
        {
            @:<div class="row">
        }
        <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
        <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
        <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
        <div class="col-sm-3"><a href="#"><img class="img-responsive" src="../Style/Images/demo1.jpg" alt="variety name" /><p>Variety Name</p></a></div>
        if ((i + 1)%4 == 0)
        {
            @:</div>
        }
    }
}

razor的编码结构更可靠,更不容易出错。您在第一个"if"中放置了一个开始的div,并在第二个"if"中结束。如果第一个和第二个"if"在单次迭代中不为真怎么办?然后会有一个没有意义的额外的开始或结束

最新更新