我在ViewModel中验证bool值时出现问题,显示为复选框。
视图模型:
public class UserModel
{
public bool Newsletter { get; set; }
}
观点:
@Html.CheckBoxFor(m => m.Newsletter)
我一直在尝试构建自定义ValidationAttribute以确保只能将true / fales值发送到控制器。如果有人更改了复选框的值,让我们说" asdfg",表单的提交将导致500错误,并出现以下错误: System.InvalidOperationException!类型' System.String'的参数转换输入' System.Boolean'失败。有关详细信息,请参阅内部异常。
我一直试图找到一种方法来避免这种服务器错误,但是在应用ValidationAttribute之前,它会看到MVC崩溃。
处理此问题的唯一解决方案是在控制器中使用OnException。有谁知道更好的方法来解决这个问题?
protected override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception is InvalidOperationException)
{
// Handle this exception here
}
base.OnException(filterContext);
}