2015-11-23 29 views
0

描述:編譯服務此請求所需的資源 時發生錯誤。請仔細閱讀以下具體的 錯誤詳細信息並適當修改您的源代碼。MVC5編譯錯誤

編譯器錯誤信息:CS1513:}預期

,我運行的代碼是:

@if (Model.Criteria != null) 
{ 
    @Html.Raw("<ul>") 
    foreach (var value in Model.Criteria.SearchCriteria) 
    { 
    @Html.Raw("<li>" + value.Key + " - ") 

    var test = (Dictionary<string, object>)@value.Value; 

    switch (test.First().Key.ToUpper()) 
    { 
     case "DDL": 
      <select> 
       @foreach (var val in (string[])test.First().Value) 
       { 
        <option value="@val">@val</option> 
       } 
      </select> 
      break; 
     case "INPUT": 
     @Html.TextBox(test.First().Value.ToString()) 
      break; 
    } 

    @Html.Raw("</li>") 
    } 
@Html.Raw("</ul>") 
} 

SearchCriteria也Dictionary<string, object>

如果我刪除測試變量和switch語句,它工作沒有問題。我試圖理解爲什麼我不能將測試分配爲字典對象,然後循環遍歷它。我究竟做錯了什麼?

+1

「編譯錯誤」與「編譯錯誤」不同。我鼓勵你修改你的問題,因爲這個錯誤是在你的代碼中,而不是在編譯器或它的編譯中。 – ErikE

回答

2

@Html.Raw("<li>" + @value.Key + " - ")應該是@Html.Raw("<li>" + value.Key + " - "),因爲在Raw()方法中,你已經在處理C#語法; value.Key只是一個字符串變量。

var test = (Dictionary<string, object>)@value;相同。

+0

我按照您的建議更新了我的代碼,並且仍然收到相同的錯誤。如果我刪除了測試變量和整個switch語句,代碼將工作並加載頁面。當我介紹測試變量時,它會因此錯誤而崩潰。 – Bojan

+0

我剛剛在另一個地方看到了同樣的東西,你是否也更新過? – GendoIkari

+1

就是這樣!謝謝! – Bojan