阻止用户在.NET MVC3中提交默认表单值

时间:2012-06-27 02:32:28

标签: asp.net asp.net-mvc-3 validation unobtrusive-validation

我有以下型号:

public class Contact
{
    public Contact()
    {
        Name = "Your Name";
        Email = "Your Email";
        Message = "Your Message";
    }

    [Required]
    [StringLength(60,MinimumLength = 3)]
    public string Name { get; set; }

    [Required]
    [DataType(DataType.EmailAddress)]
    [RegularExpression(@"\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b")]
    public string Email { get; set; }

    [Required]
    [StringLength(2200, MinimumLength = 10)]
    [DataType(DataType.MultilineText)]
    public string Message { get; set; }
}

对于Message和Name,它们的默认值(在构造函数中)实际上通过了验证,显然这很糟糕。我知道我可以检查这个并在Controller中抛出一个错误,但我正试图找到一种方法在模型中做这些(因为我认为这是正确的地方)。

2 个答案:

答案 0 :(得分:2)

我不会在所有服务器端执行此操作。使用文本框水印ala中的许多方法之一

http://code.google.com/p/jquery-watermark/

答案 1 :(得分:1)

这些看起来像提示,而不是默认值。您应该使用javascript实现这些,而不是将它们设置为输入值。