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())は「名」または「 「名」、FirstNameまたはLastNameが「名」および「名」と等しい場合、「名/名を入力してください」というエラーが検証で返されるように、これを確認するにはどうすればよいですか。

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 に答える