2013-07-16 37 views
1

由於某種原因,我似乎無法理解爲什麼我的ASP.NET MVC應用程序中出現The if 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.錯誤。ASP.NET MVC - 簡單如果其他

@foreach (var image in Model.Images) 
{ 
    if (counter == Model.Images.Count - 1) 
    { 
     <div style="float: left; height: 250px; padding-right: 5px;"> 
    } 
    else 
    { 
     <div style="float: left; height: 200px; padding-right: 5px;"> 
    } 
    .... 
    .... 

此前上面,我只是做:<div style="float: left; height: 200px; padding-right: 5px;">,但是我需要這個的if else,使其更好看。

我在If If語句中做錯了什麼?

+3

前面追加@:您必須首次使用@。所以在別的之前不要再使用@ – CocLn

+0

我以前也試過,但它不起作用。 – Subby

回答

1

這應該工作:

@foreach (var image in Model.Images) 
{ 
    if (counter == Model.Images.Count - 1) 
    { 
     <text><div style="float: left; height: 250px; padding-right: 5px;"></text> 
    } 
    else 
    { 
     <text><div style="float: left; height: 200px; padding-right: 5px;"></text> 
    } 
} 
+0

它不起作用。我仍然得到同樣的錯誤。 – Subby

+0

我已經更新了我的答案,可否檢查一下現在是否有效? –

0

嘗試包裹在@整件事{...}。並從現有語法中刪除@符號。

1

我會嘗試更換的if/else完全像:

<div style="@(counter == Model.Images.Count - 1 ? "float: left; height: 250px; padding-right: 5px;" : "float: left; height: 200px; padding-right: 5px;")"> 
+0

我使用了這種方法並提取了樣式並將其放置在.css文件中。 – Subby

2

你的問題是,MVC解析器解釋你的代碼已經離開你一個開放的<div>圍坐。而不是打開兩個,嘗試返工你的代碼,只是一個輸出:

@foreach (var image in Model.Images) 
{ 

    int height; 

    if (counter == Model.Images.Count - 1) 
    { 
     height = 250; 
    } 
    else 
    { 
     height = 200; 
    } 

    <div style="float: left; height: @(height.ToString()+"px"); padding-right: 5px;"> 
     ... 
     ... 
    </div> 
} 

它也可以在一個更緊湊的方式來完成:

@foreach (var image in Model.Images) 
{ 

    bool condition = (counter == Model.Images.Count - 1) 

    <div style="float: left; height: @(condition ? "200px" : "250px"); padding-right: 5px;"> 
     ... 
     ... 
    </div> 
} 
+0

我認爲這是正確的。我花了30分鐘在同一個問題上撓頭。 html標籤必須在大括號內關閉。令人煩惱的是,錯誤消息不是很具描述性。 – Oliver

0

檢查@foreach需要,也嘗試在每個div