2015-09-04 52 views
0

如何正確寫入?多個Else if if語句中。 Umbraco代碼解釋

@{ 
     if (x = y) { 
      // Do something 
     } else if (x = 1) { 
      // Do something else 
     } else if (x = 2) { 
      // Do something wild 
     } else { 
     // Do something wildly 
     } 
} 

最後否則,如果其他不會被解釋爲代碼,我不能弄清楚在何處放置額外的@標記。誰能幫我?

總例如:

<h2>PAGE</h2> 
    @{ 

     var years = Umbraco.Content(3772).Children; 
     for (int i = 0; i < years.Count(); i++) { 

      var page = years[i]; 

      if (i < 3) { 
       <a class="btn btn-primary" href="@page.Url">@page.Name</a> 
      } else if (i == 3) { 
       <label id="lblSelect"> 
        <select id="selectPointOfInterest" title="Vælg årstal" onchange="location = this.value;"> 
         <option value="@page.Url">@page.Name</option> 
      } else if (i < years.Count() && i > 3) { 
         <option value="@page.Url">@page.Name</option> 
      } else if (i == years.Count()-1) { 
         <option value="@page.Url">@page.Name</option> 
        </select> 
       </label> 
      } 
     } 
    } 

回答

2

如果有人有興趣,我找到了自己的解決方案。

固定總計實施例

<h2>PAGE</h2> 
@{ 

    var years = Umbraco.Content(3772).Children; 
    for (int i = 0; i < years.Count(); i++) { 

     var page = years[i]; 

     if (i < 3) { 
      <a class="btn btn-primary" href="@page.Url">@page.Name</a> 
     } else if (i == 3) { 
      @:<label id="lblSelect"> 
       @:<select id="selectPointOfInterest" title="Vælg årstal" onchange="location = this.value;"> 
        <option value="@page.Url">@page.Name</option> 
     } else if (i < years.Count() && i > 3) { 
        <option value="@page.Url">@page.Name</option> 
     } else if (i == years.Count()-1) { 
        <option value="@page.Url">@page.Name</option> 
       @:</select> 
      @:</label> 
     } 
    } 
} 
0

與例子的問題是withouth的在IF的同一分支關閉它們打開某些HTML標籤。

嘗試生成的HTML的字符串,然後打印出來,這樣的事情:

else if (i == 3) 
{ 
    String toPrint = String.Format("<label id=\"lblSelect\"><select id=\"selectPointOfInterest\" title=\"Vælg årstal\" onchange=\"location = this.value;\"><option value=\"{0}\">{1}</option>", page.Url, page.Name); 
    @Html.Raw(toPrint); 
}