试图让我的头脑不受干扰地进行验证。我创建了一个这样的简单页面:
@using (Html.BeginForm())
{
<text>Validation for name should fail unless this box contains the word christmas</text>
@Html.TextBoxFor(c => c.IsChristmas, new { id = "IsChristmas" }) <br />
@Html.TextBoxFor(c => c.Name)
@Html.ValidationMessageFor(c => c.Name)
<br />
<input type="submit" value="Submit" />
}
该模型只有两个字符串[Required] Name
和IsChristmas
。
这样可以正常工作,如果在文本框为空时按提交,则会出现Name is required
验证错误。
我现在要做的是,如果第一个文本框中没有包含“圣诞节”这个词,那么当他们尝试提交时会出现验证错误。这只是为了了解如何创建自己的自定义验证类型。我不想使用数据属性,我想完全在javascript中完成。如果可能的话,我想加入现有的不引人注目的东西。
有什么想法吗?
我想我可以先写一个函数:
function isChristmas()
{
return $('#isChristmas').val() == 'christmas';
}
那么也许我可以以某种方式注册它以便在提交时调用它?通过注册某种处理程序直接进入验证代码,或者编写调用isChristmas()的自己的处理程序(提交按钮单击事件),如果它为false,则调用方法显示验证错误。
我不确定不引人注目的东西是多么灵活。我想另一个令人向往的事情是,如果页面是在绕过验证的情况下提交的,我也可以检查服务器端并让它返回视图并以某种方式显示错误。