多种验证类型的数据注释
Data Annotations for multiple validation types
我觉得这应该很简单。我需要验证范围为 (0 - 99.999999) 的十进制值,或者我需要能够用 "TBD" 标记该值。我无法更改该要求,或者我可能已经以其他方式完成了。有没有办法通过数据注释来处理多种验证类型?我很讨厌正则表达式。如果可以那样做,谁能指出我正确的方向?
我想我是从 C# 标签中点击了这个,但我在 post 中没有看到任何标签。不管我的代码是在 C# 中还是在 Win Forms 应用程序中。
我不确定您所说的 'TBD' 是什么意思,但这对任何介于 00.000000 和 99.999999 之间的数字输入都有效。请注意,这将允许小数点左侧有两个值,即“09.1”。
using System;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace RegexInputValidation
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBoxInput_TextChanged(object sender, EventArgs e)
{
string regex = @"^((\d{0,2}(\.\d{1,6})?)|(\.\d{1,6}))$";
bool isValid = (Regex.IsMatch(textBoxInput.Text, regex) && !textBoxInput.Text.Contains(" ") && !textBoxInput.Text.Equals(""));
if (isValid)
textBoxValid.Text = "Valid input: " + double.Parse(textBoxInput.Text);
else
textBoxValid.Text = "TBD";
}
}
}
所以,Jerodev 是正确的。使用数据注释无法正确完成此操作。我必须创建一个自定义验证器,然后在我自己的新数据注释中实现该验证器。我跟着 http://ezzylearning.com/tutorial/creating-custom-validation-attribute-in-asp-net-mvc 学习了如何创建我自己的自定义验证器。
我觉得这应该很简单。我需要验证范围为 (0 - 99.999999) 的十进制值,或者我需要能够用 "TBD" 标记该值。我无法更改该要求,或者我可能已经以其他方式完成了。有没有办法通过数据注释来处理多种验证类型?我很讨厌正则表达式。如果可以那样做,谁能指出我正确的方向?
我想我是从 C# 标签中点击了这个,但我在 post 中没有看到任何标签。不管我的代码是在 C# 中还是在 Win Forms 应用程序中。
我不确定您所说的 'TBD' 是什么意思,但这对任何介于 00.000000 和 99.999999 之间的数字输入都有效。请注意,这将允许小数点左侧有两个值,即“09.1”。
using System;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace RegexInputValidation
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBoxInput_TextChanged(object sender, EventArgs e)
{
string regex = @"^((\d{0,2}(\.\d{1,6})?)|(\.\d{1,6}))$";
bool isValid = (Regex.IsMatch(textBoxInput.Text, regex) && !textBoxInput.Text.Contains(" ") && !textBoxInput.Text.Equals(""));
if (isValid)
textBoxValid.Text = "Valid input: " + double.Parse(textBoxInput.Text);
else
textBoxValid.Text = "TBD";
}
}
}
所以,Jerodev 是正确的。使用数据注释无法正确完成此操作。我必须创建一个自定义验证器,然后在我自己的新数据注释中实现该验证器。我跟着 http://ezzylearning.com/tutorial/creating-custom-validation-attribute-in-asp-net-mvc 学习了如何创建我自己的自定义验证器。