【问题标题】:Use check box in view and get its value in model在视图中使用复选框并在模型中获取其值
【发布时间】:2010-08-20 12:52:17
【问题描述】:

我可以在 View 中这样使用它吗?

<%= Html.CheckBoxFor(user => user.Role, "Administrator")%>

如果选中复选框,则只需读取模型中的属性值:

string role = user.Role;
(role = "Administrator")

【问题讨论】:

    标签: c# asp.net-mvc model checkbox view


    【解决方案1】:

    在你的模型中...

    public class UserEditModel { 
      public string UserName { get; set; }
      public string[] Role { get; set; }
    }
    

    在你看来……

    <%: Html.TextBoxFor(x = x.UserName)<br />
    <input type="checkbox" name="role" id="role_Administrator" value="Administrator" />
    <input type="checkbox" name="role" id="role_Create_Project" value="Create Project" />
    <!-- etc -->
    

    是的,您需要为此场景编写原始 HTML。这将与 MVC 默认值正确绑定。默认的 CheckBoxFox 确实只适用于 True/False 绑定。类似的东西

    <%: Html.CheckBoxFor(x => x.AcceptLicenseTerms) %>
    

    <%: Html.CheckBoxFor(x => x.RememberMe) %>
    

    【讨论】:

    • 对不起,我有点困惑我都在这里做什么。谢谢介绍:)!
    • 我认为这个特定场景(您的代码)更适合单选按钮组类型的选择。
    • 我想制作能够添加新角色的下拉列表,那我需要使用复选框,我认为它更有意义还是??
    【解决方案2】:

    复选框被读取为“真”或“假”,即它们是布尔类型。您可以做的是拥有一个带有 IsAdmin 属性的视图模型,然后在该属性为 true 时签入您的控制器。

    // View
    <%: Html.CheckBoxFor(model => model.IsAdmin)
    
    // Controller
    If(viewModel.IsAdmin)
    {
        doYourStuff();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      相关资源
      最近更新 更多