【问题标题】:validating textboxes based on the URL entered根据输入的 URL 验证文本框
【发布时间】:2013-01-08 09:29:08
【问题描述】:

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

一般而言,对于我创建的大多数路线,职位标题文本框将只需要三个 URL,目前需要军衔,在类似的项目中,我使用已添加到视图模型的 MVC Foolproof Validation 添加了 RequiredIf 注释,在我尝试使用注释的情况下,但是因为我正在从域模型项目进行验证,所以万无一失的验证不起作用。

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

 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 类来获取隐藏字段的值,但到目前为止还没有成功。

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

【问题讨论】:

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


    【解决方案1】:

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

    也许像someBoolean = Request["UseRankInsteadOfJobTitle"]

    【讨论】:

    • 让它工作了我想知道由于我现在不使用数据注释,是否可以显示一个星号或更改字段的颜色以表示它是必需的?我使用的助手依赖于显示这些所需的数据注释。
    • 我不确定这将如何工作。您可以仅出于该目的保留注释,或者您可以考虑更改代码中字段的 css。比如在回帖上你可以有 TextBox.BackColor = Color.
    • 按要求注释它们的唯一问题是它覆盖了自定义验证,无论输入的 URL 是什么,它们都需要。另外,我只希望在输入正确的 URL 时显示星号
    • 在字段旁边放一个空标签怎么样。然后在验证字段值的时候加一个星号?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多