2015-01-09 31 views
1

在用戶列表上,我想顯示其角色的名稱而不是roleId。當前數據以以下形式加載:如何更改數據模型中項目的顯示值?

@model IEnumerable<DemoRes.Models.User> 

<div id="divUsers"> 
    <h2>Users</h2> 
    <table class="table"> 
     <tr> 
      <th>Username</th> 
      <th>Email</th> 
      <th>Access Role</th> 
      <th>Enabled</th> 
      <th></th> 
     </tr> 
     <tbody data-bind="foreach: List"> 
      <tr> 
       <td data-bind="text : Username"></td> 
       <td data-bind="text : Email"></td> 
       <td data-bind="text : Role"></td> 
       <td data-bind="text : IsActive"></td> 
      <td> 


</td> 
      </tr> 
     </tbody> 
    </table> 
</div> 

User對象的role屬性是一個int值(0 - Admin,1 - 成員)。

當前在表格「Access Role」列中顯示整數值。

我想要做的是用所屬字符串(「Admin」或「Member」)替換整數值。有沒有人知道什麼是最好的方式來實現這一點,因爲角色可以用任意列表或字典來表示。在這種情況下,應如何傳遞角色的列表(或字典)以形成表單(例如,使用ViewBag,通過修改視圖模型...)?

謝謝!

+0

您使用的是什麼客戶端框架?應該可以使用它 –

+2

在模型上創建一個屬性(可能稱爲'RoleName'),它返回文本值並綁定到該屬性。另外,你認真***顯示密碼***?他們是***純文本***嗎?請*請*不要那樣做。這很可能是你可以對用戶做的最不負責任的事情之一。 – David

+0

謝謝大衛。密碼不會被顯示,可能會被加密存儲。也許最好從上面的例子中刪除字段:) –

回答

2

這裏最好的做法是把它的視圖模型,那麼您可以在您的淘汰賽中引用它:

public string RoleName { get; set; } 

然後與您的數據填充它(在你的控制器/業務邏輯/型號人口代碼) ,那麼你可以做:

<td data-bind="text : RoleName"></td> 

作爲除此之外,作爲@大衛所提到的,它看起來像你的密碼顯示,從事實,一邊是可怕的安全,這也意味着你」不加密地存儲它們,這意味着如果有人獲得訪問你的數據庫,他們得到每個人的密碼,不好

相關問題