2014-04-11 70 views
0

我有一個<select>標籤,它的<option>標籤通過循環構建。什麼是HTML標籤內聯IF語法的語法MVC

我很困惑如何正確使用Razor語法來設置selected歸因於符合條件的<option>

下面的代碼是我對如何做到這一點的理解的例子...

<select> 
@{ 
    for (int i = 0; i < 4; i++) 
    {       
    <option value="@i" @if(Model.Foo == i){ @:selected }>@i</option> 
    } 
} 
</select> 

然而,上面的代碼招致的指明​​了設計時的錯誤:

的對塊缺少關閉「}」字符。確保你有一個 與該塊內所有「{」字符匹配的「}」字符, ,並且沒有任何「}」字符被解釋爲標記。

從錯誤信息推斷,我假定@:selected之後直接來自右大括號被解釋爲標記

如果/當我把一個新的行像這樣違規的花括號之前,我可以修正這個錯誤......

<select> 
@{ 
    for (int i = 0; i < 4; i++) 
    {       
    <option value="@i" @if(Model.Foo == i){ @:selected 
    }>@i</option> 
    } 
} 
</select> 

是否有不需要新建 - 適當的剃刀語法線?

僅供參考 - 我試過使用<text>selected</text>標籤無濟於事。

回答

0

我認爲以下應該工作。

value="@(Model.Foo == i ? "selected" : "")"