【问题标题】:Radiobuttons to display data in MVC app在 MVC 应用程序中显示数据的单选按钮
【发布时间】:2010-12-26 11:59:51
【问题描述】:

我正在寻找一种更好的方法来使用 MVC 视图中包含的表单中的 RadioButtons 来显示数据。 我目前正在使用的一个示例是显示 MembershipUser 所属的角色。

我正在做的是设置字符串变量的值以在我的输入标签中输出,这将在必要时将 RadioButton 设置为选中状态。从下面的代码可以看出,这是一个极其丑陋的 hack。

您能否建议一种更好的方式来呈现这些数据?

 <%

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

【问题讨论】:

    标签: c# asp.net asp.net-mvc radio-button


    【解决方案1】:

    我更喜欢具有多行并启用多选的 标签,例如

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

    【讨论】:

    • 这实际上是我在应用程序中使用的。但是,这个单选按钮问题困扰了我一段时间,我正在寻找一个优雅的解决方案
    • 我还应该补充一点,您可能需要复选框而不是单选按钮,除非角色永远不会重叠(即 philjohn isa 用户和 philjohn isa 管理员)。
    • 最初的想法是,如果你是一个角色,那么你也是它下面的所有角色。但我想我会根据这个问题的答案来改变这一点。
    【解决方案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"))%>
    

    【讨论】:

    • 谢谢奥马尔。最初我希望如果用户处于特定角色,他们也处于其下的每个角色,但我将更改该实现。你的答案很完美。
    • 是的,就像 philjohn 建议的 (+1),如果使用复选框,它的可读性更高,特别是当用户担任多个角色时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2018-06-16
    • 2014-10-14
    • 2018-03-11
    相关资源
    最近更新 更多