2015-09-02 83 views
0

我試圖寫下面的模板,但執行後,我在控制檯中得到無效的模板錯誤。如何檢查kendo模板內的枚舉和模型屬性

@using MYApplication.EnumContract 
    @model MYApplication.Models.CustomerModel 
    <script type="text/kendo-x-tmpl" id="EntitiesTemplate"> 
      <table> 
     <tr> 
      # if ((int)CustomerStatus.APPROVED == custStatus && CustomerModel.UserRole == 1) { # 
      <td> 
       APPROVED 
      </td> 
      # } 
      else {# 
      <td> 
      NOT APPROVED 
      </td> 
      #} 
      # 

    </tr> 
    </table> 

</script> 

請讓我知道,因爲你是在你的模板(# expression #)執行arbitary JavaScript代碼,我們如何檢查枚舉內模板&模型...

+0

我不認爲你可以在JavaScript中投(INT)? ? –

+0

@RickS:是的!你是對的,我們不能在JavaScript中投射int,並且根據我的理解,我們不能使用枚舉和模型來檢查。那麼處理這種類型的條件的正確方法是什麼? – Dev

回答

0

,那麼你可以嘗試添加全局變量包含所有枚舉值的頁面。

把所有的模板,上面這個腳本(在剃刀頁)

<script> 
var approvedVal = parseInt("@((int)CustomerStatus.APPROVED)"); 
</script> 

和您的模板應該是這樣的

<script type="text/kendo-x-tmpl" id="EntitiesTemplate"> 
    <table> 
     <tr> 
      # if (custStatus == approvedVal && CustomerModel.UserRole == 1) { # 
      <td>APPROVED</td> 
      # } else { # 
      <td>NOT APPROVED</td> 
      # } # 
     </tr> 
    </table> 
</script>