根据输入的URL验证文本框

时间:2013-01-08 09:29:08

标签: c# validation asp.net-mvc-4 foolproof-validation

我正在尝试根据输入的网址验证两个文本框,文本框用于职位和军衔。

一般来说,对于我创建的大多数路线,工作标题文本框只需要三个URL,而目前只需要军事等级,在类似的项目中,我使用已添加到视图模型的MVC Foolproof Validation添加了一个RequiredIf注释,在我尝试使用注释的情况下,但是因为我从域模型项目验证了Foolproof验证不起作用。

我目前使用此代码在域模型中部分实现了自定义验证作为处理程序类:

 if (paymentDetailsForm.UseRankInsteadOfJobTitle)
        {
            if (paymentDetailsForm.Rank == null)
            {
                yield return new ValidationResult(Resources.JobRankRequired);
            }
        }

基本上我创建了一个名为UseRankInsteadOfJobTitle的布尔值,根据输入的URL设置为true或false。

将此值设置为true或false我在控制器中使用了此代码:

if ((programme.Code == "AMAC") || (programme.Code == "AMACD") || (programme.Code == "AMACR"))
        {
            ViewData["UseRankInsteadOfJobTitle"] = true;
        }
        else
        {
            ViewData["UseRankInsteadOfJobTitle"] = false;
        }

然后在视图上创建了一个隐藏字段:

@Html.Hidden("UseRankInsteadOfJobTitle", @ViewData["UseRankInsteadOfJobTitle"])

然后生成以下HTML:

表示错误值

<input data-val="true" data-val-required="The Boolean field is required." id="UseRankInsteadOfJobTitle" name="UseRankInsteadOfJobTitle" type="hidden" value="False" />

表示真实值

<input data-val="true" data-val-required="The Boolean field is required." id="UseRankInsteadOfJobTitle" name="UseRankInsteadOfJobTitle" type="hidden" value="True" /> 

目前没有为职位或军衔显示验证消息,我需要一种方法来确定USERankInsteadOfJobTitle的值是真还是假。

我尝试使用formCollection类来获取隐藏字段的值,但到目前为止这还没有用。

关于如何做到这一点或更好地验证这些文本框的任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

您是否尝试过使用Request["Fieldname"]

也许像someBoolean = Request["UseRankInsteadOfJobTitle"]