簡體   English   中英

ASP.NET MVC4中cshtml文件中的解析錯誤

[英]Parsing error in cshtml file in ASP.NET MVC4

在視圖中,我試圖連續顯示最多5個圖像。 我們的想法是通過使用</tr><tr> html標記來引入一個新行來關閉當前行並開始一個新行,如下所示,但這會產生一個Parser錯誤。

分析器錯誤消息:代碼塊缺少結束“}”字符。 確保此塊中的所有“{”字符都有匹配的“}”字符,並且沒有任何“}”字符被解釋為標記。

我怎么能糾正這個?

<table>
    <tr>     
        @{   
            int indx = 0;
            foreach(var item in Model) { 
                indx++;                                   
                <td>
                    <a href ="@Url.Action("ShowPic", "ViewPhotos", new { id = item.ID })"> 
                        <img src="@String.Format("data:image/jpg;base64,{0}", Convert.ToBase64String(item.Image))" /> 
                    </a>            
                    <br />                       
                    @Html.DisplayFor(modelItem => item.Caption) 
                </td>
                if(indx%5==0) {
                     </tr><tr><!--Error here-->
                }

                }
            }                  
    </tr>
</table>

謝謝。

嘗試將此添加到相關行

@: </tr><tr><!--Error here-->

因為您將它包裝在HTML標記元素中,所以Razor無法確定if中的內容if是內容塊的開頭。 通過使用@:我們指出語句的內容應該被視為內容。

您的第一個<tr>和最后一個</tr>超出了它的開始/結束標記的范圍:

<table>
    @{   
        <tr>
            int indx = 0; foreach (var item in Model) { indx++;
            <td>
                <a href ="@Url.Action("ShowPic", "ViewPhotos", new { id = item.ID })">
                    <img src="@String.Format("data:image/jpg;base64,{0}", Convert.ToBase64String(item.Image))" />
                </a>
                <br />
                @Html.DisplayFor(modelItem => item.Caption)
            </td>
            if(indx%5==0) {
        </tr>
        <tr>
            } }
        </tr>    
    }
</table>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM