C# 如何在ASP.NET MVC中正确验证数据

C# 如何在ASP.NET MVC中正确验证数据,c#,asp.net-mvc,C#,Asp.net Mvc,我试图验证我的模型数据,这是一个字符串输入的文本框,但当我尝试使用int输入进行测试时,我没有得到错误,它被保存到数据库中 我怎样才能防止这种情况 模型类: [Required] public string DeptName { get; set; } 行动方法: public ActionResult Update(Dept model) { if (!ModelState.IsValid) { return View();

我试图验证我的模型数据,这是一个字符串输入的文本框,但当我尝试使用int输入进行测试时,我没有得到错误,它被保存到数据库中

我怎样才能防止这种情况

模型类:

[Required]
public string DeptName { get; set; }
行动方法:

public ActionResult Update(Dept model)
{
        if (!ModelState.IsValid)
        {
            return View();
        }

        db.Entry(model).State = EntityState.Modified;
        db.SaveChanges();

        return RedirectToAction("Index");
}
视图:

@model Dept
@使用(Html.BeginForm())
{
@HiddenFor(a=>a.DeptId);
@TextBoxFor(a=>a.DeptName);
@ValidationMessageFor(a=>a.DeptName);
}

如果只使用[Required]属性,则其检查值是否为空,不检查值类型int或string

如果要在文本框中只允许字母字符。 您可以使用正则表达式

[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Use letters only please")]
string DeptName {get; set;}
[RegularExpression("[a-zA-Z]*", ErrorMessage = "Cannot be a number")]
[RegularExpression(@"^[a-zA-Z]+$", ErrorMessage = "Use letters only please")]
string DeptName {get; set;}