我遇到了将两个单选按钮绑定到我在模型中指定的enum
个角色的问题。在注册时选择角色,当我设置角色并提交表单时,即使我单击另一个单选按钮获取{{1}的角色,也只会将Provider
的第一个角色传递给控制器。 1}}。
我已经在我的大部分代码上调试并设置了断点,但我只看到Receiver
发送给控制器的角色。 问题:如何将我的枚举正确绑定到我的单选按钮?或者我应该采用不同的方法吗?
注意:注册模型的其余部分正确绑定,其他所有内容都已提交并正确插入到数据库中,但角色除外。
MODEL
Provider
VIEW(仅限单选按钮的相关代码)
public enum AppRoles
{
Provider,
Receiver,
Admin
}
public class RegisterViewModel
{
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Role")]
public AppRoles Role { get; set; }
}
控制器
<div class="form-group">
<div class="col-md-12 text-center">
<h3>Select Your Account Type</h3>
<div class="btn-toolbar" data-toggle="buttons">
<label class="btn btn-primary">
Service Receiver
@Html.RadioButtonFor(m => m.Role, AppRoles.Receiver, "Receiver")
</label>
<label class="btn btn-primary">
Service Provider
@Html.RadioButtonFor(m => m.Role, AppRoles.Provider, "Provider")
</label>
</div>
</div>
答案 0 :(得分:-1)
输入的值必须是整数。当它与请求一起发送时,它将从整数转换为枚举。你应该改变你的观点,如:
@Html.RadioButtonFor(m => m.Role, (int)AppRoles.Receiver)
另请注意,由于您发送的值无法解析,因此将其设置为枚举的默认值,即提供者。