In your model...
public class UserEditModel {
public string UserName { get; set; }
public string[] Role { get; set; }
}
In your view...
<%: 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 -->
Yes, you need to write raw HTML for this scenario. This will bind correctly with the MVC defaults. The default CheckBoxFox really only works well with True/False bindings. Something like
<%: Html.CheckBoxFor(x => x.AcceptLicenseTerms) %>
or
<%: Html.CheckBoxFor(x => x.RememberMe) %>