2009-12-14 22 views
1

我正在尋找一種更好的方式來使用包含在MVC視圖內的表單中的RadioButtons來顯示數據。 我目前正在使用的一個示例顯示MembershipUser所屬的角色。Radiobuttons在MVC應用程序中顯示數據

我正在做的是設置字符串變量的值,以便在我的輸入標記中輸出,以便將RadioButton設置爲在必要時進行檢查。正如你從下面的代碼可以看到的,這是一個非常醜陋的黑客攻擊。

你能提出一個更好的方式來呈現這些數據嗎?

<% 

string User = string.Empty; 
if (Roles.IsUserInRole(Model.UserName, "User")) 
{ 
User = "checked='checked'"; 
} 
string Priviliged = string.Empty; 
if (Roles.IsUserInRole(Model.UserName, "Privileged")) 
{ 
Priviliged = "checked='checked'"; 
User = string.Empty; 
} 
string Admin = string.Empty; 
if (Roles.IsUserInRole(Model.UserName, "Admin")) 
{ 
Admin = "checked='checked'"; 
Priviliged = string.Empty; 
} 
string SuperAdmin = string.Empty; 
if (Roles.IsUserInRole(Model.UserName, "SuperAdmin")) 
{ 
SuperAdmin = "checked='checked'"; 
Admin = string.Empty; 
} 

%> 

<input type="radio" name="Permission" id="Permission" value="SuperAdmin" <%=SuperAdmin %> />SuperAdmin 
<input type="radio" name="Permission" id="Permission" value="Admin" <%=Admin %> />Admin 
<input type="radio" name="Permission" id="Permission" value="Privileged" <%=Priviliged %> />Privileged 
<input type="radio" name="Permission" id="Permission" value="User" <%=User %> />User 

回答

2

也許你可以嘗試使用HMTL幫手,是這樣的:

<%=Html.RadioButton("Permission", "SuperAdmin", Roles.IsUserInRole(Model.UserName, "SuperAdmin"))%> 
<%=Html.RadioButton("Permission", "Admin", Roles.IsUserInRole(Model.UserName, "Admin"))%> 
<%=Html.RadioButton("Permission", "Privileged", Roles.IsUserInRole(Model.UserName, "Privileged"))%> 
<%=Html.RadioButton("Permission", "User", Roles.IsUserInRole(Model.UserName, "User"))%> 
+0

謝謝奧馬爾。起初我想,如果用戶是一個特定的角色,他們也在其下的每個角色,但我會改變這種實現。你的答案是完美的。 – splatto 2009-12-14 17:27:14

+0

是的,就像philjohn建議的那樣(+1),如果使用複選框,特別是當用戶處於多個角色時,它的可讀性更高。 – JOBG 2009-12-14 17:30:53

1

我寧願一個<選擇具有多行和多選擇啓用,例如/ >標籤

<select id="permissions" name="permissions" size="4" multiple="multiple"> 
    <option value="SuperAdmin">Super Admin</option 
    .... 
</select> 
+0

這其實是我使用的應用程序是什麼。然而,這個單選按鈕問題困擾了我一段時間,我正在尋找一個優雅的解決方案 – splatto 2009-12-14 16:58:14

+0

我還應該補充說,你可能想要複選框而不是單選按鈕,除非永遠不會有角色的重疊(即philjohn isa用戶,以及philjohn isa admin)。 – philjohn 2009-12-14 17:01:56

+0

這個想法最初是如果你是一個角色,你也是所有角色的下面。但我想我會根據這個問題的答案來改變它。 – splatto 2009-12-14 17:26:31

相關問題