foreach块缺少一个闭包“}”";字符-尝试在行中包装项目时

本文关键字:字符 quot 项目 包装 闭包 一个 foreach | 更新日期: 2023-09-27 18:29:59

这里显示的图像大小不同,因此每组3个项目都应该封装在<div class="row"></div>中,以防止事情变得混乱。但我一直收到这个错误:

Server Error in '/' Application.
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. 
Parser Error Message: The foreach block is missing a closing "}" character.  Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.

我怎样才能格式化它,这样它就不会让Razor抓狂?

<div class="row">
     @foreach (var row in Model.Select((item, index) => new { index, item }))
     {
         if (row.index != 0 && row.index % 3 == 0)
         {
            </div><div class="row">
         }
        <div class="col-sm-4 mix @String.Format(@"category-{0}", row.item.Category.ToString())" data-price="64900" data-date="20130521" data-popularity="3">
            <div class="ec-box">
                <div class="ec-box-header"><a href="#">@row.item.Name</a></div>
                <a href="#"><img src="@row.item.Image.URL" alt=""></a>
                <div class="ec-box-footer">
                    <a href="@Url.Action("Details")" class="btn btn-ar btn-success btn-sm pull-right"><i class="fa fa-search"></i> More info</a>
                </div>
            </div>
        </div>
     }
</div>

foreach块缺少一个闭包“}”";字符-尝试在行中包装项目时

您使用这个让解析器非常沮丧

@String.Format(@"category-{0}", row.item.Category.ToString())

为什么不呢?

@("category-" + row.item.Category.ToString())

请注意,在您的语句中使用了花括号{0}

看起来您将剃刀与放置@foreach块的方式混淆了。尝试将您的代码更改为以下

@foreach (var row in Model.Select((item, index) => new { index, item }))
{
    if (row.index == 0 || row.index % 3 == 0)
    {
        <div class="row">
    }
    <div class="col-sm-4 mix @String.Format(@"category-{0}", row.item.Category.ToString())" data-price="64900" data-date="20130521" data-popularity="3">
        <div class="ec-box">
            <div class="ec-box-header"><a href="#">@row.item.Name</a></div>
            <a href="#"><img src="@row.item.Image.URL" alt=""></a>
            <div class="ec-box-footer">
                <a href="@Url.Action("Details")" class="btn btn-ar btn-success btn-sm pull-right"><i class="fa fa-search"></i> More info</a>
            </div>
        </div>
    </div>
    if (row.index % 3 == 2 || row.index == Model.Count - 1)
    {
        </div>
    }
}

您忘记了if语句上的@

@if (row.index != 0 && row.index % 3 == 0)