【问题标题】:How to use ValidationAttribute for user input in options pages?如何在选项页面中使用 ValidationAttribute 进行用户输入?
【发布时间】:2012-08-20 20:18:46
【问题描述】:

我正在编写一个 Visual Studio 扩展。我有一个代表选项页面的 C# 类。选项由公共属性表示,如下所示:

public class OptionsPageGeneral : DialogPage
{
  [Range(1, 100)]
  [Category("Misc")]
  [DisplayName("Integer option")]
  public string IntOption { get; set; }
  ...
}

我正在尝试使用 RangeAttribute validation attribute 来限制用户输入。但是,对于给定的代码,用户仍然可以输入任何值,不仅来自 [1; 100] 范围。

我见过很多 ValidationAttribute 用法的例子,但都是针对 ASP.NET MVC 项目的。该属性是否仅适用于该上下文?

无论如何,如何验证在选项页面中完成的用户输入?我知道我可以简单地重写属性set 方法,但验证属性需要编写的代码少得多,并且可以重复用于类似的属性。

【问题讨论】:

    标签: c# attributes data-annotations validation options


    【解决方案1】:

    我不知道如何使用选项页面,但如果您想要 1-100 之间的范围而不是 Range,您可以使用正则表达式。

      [Category("Misc")]
      [DisplayName("Integer option")]
      [RegularExpression(@"[0-9]{2}")]//This will only allow you to enter only 2 digits
      public string IntOption { get; set; }
    

    【讨论】:

    • 来自文档:“指定 ASP.NET 动态数据中的数据字段值必须与指定的正则表达式匹配”。这再次仅适用于 ASP.NET。
    猜你喜欢
    • 2017-01-25
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 2022-01-27
    • 2013-11-10
    • 2019-12-24
    相关资源
    最近更新 更多