首页 > 解决方案 > 如何正确验证 ASP.NET MVC 中的数据

问题描述

我正在尝试验证我的模型数据,它是一个用于字符串输入的文本框,但是当我尝试使用 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

@using (Html.BeginForm())
{
    @Html.HiddenFor(a => a.DeptId);
    @Html.TextBoxFor(a => a.DeptName);
    @Html.ValidationMessageFor(a => a.DeptName);
    <input value="Update" type="submit" class="btn btn-info" />
}

标签: c#asp.net-mvc

解决方案


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

如果您想在文本框中允许唯一的字母字符。你可以使用正则表达式

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

推荐阅读