MVC 5复选框输入验证/错误处理

时间:2015-11-05 09:59:50

标签: c# checkbox asp.net-mvc-5

我在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);
    }

0 个答案:

没有答案