如何在代码中的mvc中进行一些自定义不显眼的验证?

时间:2015-12-04 14:40:06

标签: c# asp.net-mvc unobtrusive-javascript

试图让我的头脑不受干扰地进行验证。我创建了一个这样的简单页面:

@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] NameIsChristmas

这样可以正常工作,如果在文本框为空时按提交,则会出现Name is required验证错误。

我现在要做的是,如果第一个文本框中没有包含“圣诞节”这个词,那么当他们尝试提交时会出现验证错误。这只是为了了解如何创建自己的自定义验证类型。我不想使用数据属性,我想完全在javascript中完成。如果可能的话,我想加入现有的不引人注目的东西。

有什么想法吗?

我想我可以先写一个函数:

function isChristmas()
{
   return $('#isChristmas').val() == 'christmas';
}

那么也许我可以以某种方式注册它以便在提交时调用它?通过注册某种处理程序直接进入验证代码,或者编写调用isChristmas()的自己的处理程序(提交按钮单击事件),如果它为false,则调用方法显示验证错误。

我不确定不引人注目的东西是多么灵活。我想另一个令人向往的事情是,如果页面是在绕过验证的情况下提交的,我也可以检查服务器端并让它返回视图并以某种方式显示错误。

0 个答案:

没有答案