【问题标题】:ASP.NET Web Pages 2 Select Value ValidationASP.NET 网页 2 选择值验证
【发布时间】:2014-05-31 05:11:18
【问题描述】:

我想这一定很简单,我错过了一些非常明显的东西。我想使用内置验证器验证 ASP.NET Web Pages 2 表单上选择输入的选定值,但目前看来不可能。

例如:

Validation.Add("my-select", Validator.ValueEquals("Some Value"));

Validator.ValueEquals 会将所选值与提供的参数值“某些值”进行比较。我意识到我可以做到:

if(Request["my-select"] != "Some Value") {
  Validation.AddFormError("Invalid option selected");
}

但是我没有与该字段相关联的错误消息,它只会在我在表单顶部呈现验证摘要时出现。

我错过了什么?

【问题讨论】:

    标签: asp.net validation asp.net-webpages


    【解决方案1】:

    我已经破解了密码!不幸的是,该解决方案超出了内置 Validation 和 Validators 静态方法的范围,但我能够通过使用以下内容代替使用 Validation 类来实现我所需要的。

    if(Request["my-select"] != "Some Value") {
      ModelState.AddError("my-select", "Invalid option selected");
    }
    

    然后在检查Validation.IsValid()时检查ModelState是否有效:

    if(ModelState.IsValid && Validation.IsValid()) {
      // More codes...
    }
    

    ModelState 可用确实很酷,但 ValidationValidator 类无法处理这似乎很笨拙。

    【讨论】:

      【解决方案2】:

      您可以使用EqualsTo 验证器并将提供的值与隐藏字段值进行比较,或者如果您担心用户可能会篡改隐藏字段值,您可以编写自己的自定义验证器。我已经写了如何做到这一点:http://www.mikesdotnetting.com/Article/195/ASP.NET-Web-Pages-Creating-Custom-Validators

      【讨论】:

        猜你喜欢
        • 2014-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        • 2015-03-30
        • 1970-01-01
        相关资源
        最近更新 更多