3
votes

I am having a class Role as follows;

public enum Role
{                                            
    User1 = 1,
    User2 = 2,
    User3 = 3, 
    User4 = 4
}

I have the following codes in my model

public Role[] UserRoles { get; set; }
 User user = User.Load(1);
        UserRoles = user.Roles;

My question is as follows: I want to have a checkbox for each Role and if Role == userRoles, the checkbox is true else false. How can I use @HTml.CheckboxFor...Can I have an example please.

3
^^ "declined - Come back when its definite" - user5398447

3 Answers

4
votes

to use the CheckBoxFor you need a ViewModel with bool properties

public class YourVM
{                                            
  public bool[] Roles {get;set;}
}

and in the view

@model YourVM

@for (int i = 0; i < Model.Roles.Count(); i++) {
@Html.CheckBoxFor(m => m.Roles[i])
}
2
votes

You're going to come unstuck with hard-coded values if you are trying to create a checkbox list based on data from a DB.

You could try something like my CheckBoxListFor<> Extension:

How to create a CheckBoxListFor extension method in ASP.NET MVC?

0
votes

I answered this and your other question, on your other question. There is no reason to make multiple questions for the same problem, you can edit your own questions.

Difficulty in filling list while comparing arrays