我已经阅读了如何验证我的MVC模型的工作原理。这很酷。
但我需要验证严格的UI情况,这与模型无关。具体来说,我需要检查用户在单击链接之前单击了几个复选框之一。让我再次强调,复选框不代表模型数据:它们严格用于视图和控制器目的。
在WebForms世界中,我只是坚持使用RequiredFieldValidator。对于不代表模型上的字段的字段,等价物是什么?
答案 0 :(得分:1)
您需要执行一些自定义模型绑定来检查请求对象并采取相应措施(添加模型状态错误等等)。这是一个与自定义模型绑定相关的帖子应该是有益的。
ASP.Net MVC Custom Model Binding explanation
进入自定义模型绑定器后,您可以在CreateModel方法中添加与此类似的代码:
Dim request As HttpRequestBase = controllerContext.HttpContext.Request
If Not request.Form.AllKeys.Contains("YourCheckBoxName") Then
bindingContext.ModelState.AddModelError("AnError", "You must check the box first")
End If
答案 1 :(得分:0)
您可以使用jquery验证将验证规则注入验证集。
答案 2 :(得分:-1)
使用css类名称检查是否已检查其中一个框的快速而脏的解决方案。
<input type="checkbox" value="1" name="something" class="boxGroupName" /> Check1
<input type="checkbox" value="2" name="another" class="boxGroupName" /> Check1
<input type="checkbox" value="3" name="third" class="boxGroupName" /> Check1
<input type="submit" id="buttonId" />
<script type="text/javascript">
$(function() {
$('#buttonId').click(function() {
if ($('.boxGroupName:checked').length == 0) {
alert('Check some boxes, ehh?');
return false;
}
return true;
});
});
</script>