2

我的数据模型中有以下属性:

[Required]
[DataType(DataType.Text)]
[Display(Name = "First Name")]
public string FirstName { get; set; }

[Required]
[DataType(DataType.Text)]
[Display(Name = "Last Name")]
public string LastName { get; set; }

我的文本框目前有一个占位符,因此当他们专注于文本框时,占位符将在文本框中消失,如果他们没有在文本框中输入任何内容,则文本框 val ( $(textbox).val()) 等于“名字”或“姓”,我如何检查这个,以便在我的验证中返回一个错误,如果FirstNameLastName等于“名字”和“姓氏”,“请填写名字/姓氏”

4

1 回答 1

6

您应该编写自己的 ValidationAttribute 并将其用于您的属性

简单示例:

public sealed class PlaceHolderAttribute:ValidationAttribute
{
    private readonly string _placeholderValue;

    public override bool IsValid(object value)
    {
        var stringValue = value.ToString();
        if (stringValue == _placeholderValue)
        {
            ErrorMessage = string.Format("Please fill out {0}", _placeholderValue);
            return false;
        }
        return true;
    }

    public PlaceHolderAttribute(string placeholderValue)
    {
        _placeholderValue = placeholderValue;
    }
}

像这样在您的财产上使用它:

[Required]
[DataType(DataType.Text)]
[Display(Name = "First Name")]
[PlaceHolder("First Name")]
public string FirstName { get; set; }
于 2012-07-30T22:35:34.857 回答