AspNetMVC的ModelState验证不起作用
创始人
2024-09-20 09:31:27
0次

首先,在您的控制器中确保您使用ModelState.IsValid进行验证。比较常见的错误之一是使用HttpContext.Current而不是ModelState.IsValid来验证。具体代码示例如下:

[HttpPost]
public ActionResult Create(Student student)
{
    if (ModelState.IsValid)
    {
        db.Students.Add(student);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(student);
}

如果您的控制器存在嵌套属性的复杂模型,则需要手动调用验证器,以确保属性级别的验证器在模型的层次结构中正确触发。例如:

[HttpPost]
public ActionResult Create(Course course)
{
    ValidateCourse(course);

    if (ModelState.IsValid)
    {
        db.Courses.Add(course);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(course);
}

private void ValidateCourse(Course course)
{
    if (course.InstructorID == null)
    {
        ModelState.AddModelError("InstructorID", "The instructor field is required.");
    }
    ...
}

您还可以检查自定义的模型验证器进行排除。确保您的验证器正确设置错误消息并将其添加到模型状态中,如下所示:

public class StudentMetadata
{
    [Required(ErrorMessage = "The first name field is required.")]
    public string FirstName { get; set; }

    [StringLength(50, MinimumLength = 2, ErrorMessage = "The last name must be between 2 and 50 characters.")]
    public string LastName { get; set; }
}

[MetadataType(typeof(StudentMetadata))]
public partial class Student
{
    // Here you can add custom validation rules for Student
    // e.g. [Compare("Email", ErrorMessage = "The email and confirm email must match.")]
}

[HttpPost]
public ActionResult Create(Student student)
{
    if (ModelState.IsValid)
    {
        db.Students.Add(student);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(student);
}

相关内容

热门资讯

记者揭秘外挂技巧!闲来麻将多功... 记者揭秘外挂技巧!闲来麻将多功能外挂技巧,闲来麻将其实是有外挂技巧1、玩家可以在闲来麻将透视最简单三...
重大通报作弊器插件!乐游互娱多... 重大通报作弊器插件!乐游互娱多功能作弊器插件,乐游互娱一直存在有作弊器插件1、该软件可以轻松地帮助玩...
科技通报透视挂工具!天天武宁麻... 科技通报透视挂工具!天天武宁麻将多功能透视挂工具,天天武宁麻将竟然有透视挂工具天天武宁麻将透视方法中...
技术分享透视器攻略!奉化冲刺多... 技术分享透视器攻略!奉化冲刺多功能透视器攻略,奉化冲刺原来存在有透视器攻略奉化冲刺脚本下载中分为三种...
科普作弊器技巧!情怀信阳多功能... 科普作弊器技巧!情怀信阳多功能作弊器技巧,情怀信阳其实真的是有作弊器技巧1、操作简单,无需情怀信阳手...
玩家爆料辅助技巧!掌上约牌多功... 玩家爆料辅助技巧!掌上约牌多功能辅助技巧,掌上约牌一直是有辅助技巧1)掌上约牌免费钻石:进一步探索掌...
推荐攻略作弊器技巧!非物质娱乐... 推荐攻略作弊器技巧!非物质娱乐多功能作弊器技巧,非物质娱乐果然真的有作弊器技巧1、非物质娱乐模拟器是...
教程辅助辅助器插件!桃乐甘肃麻... 教程辅助辅助器插件!桃乐甘肃麻将多功能辅助器插件,桃乐甘肃麻将真是有辅助器插件1、起透看视 桃乐甘肃...
最新通报作弊器插件!小甘麻将多... 最新通报作弊器插件!小甘麻将多功能作弊器插件,小甘麻将切实存在有作弊器插件小甘麻将脚本下载中分为三种...
玩家必看分享透视挂脚本!打两圈... 玩家必看分享透视挂脚本!打两圈泰州麻将多功能透视挂脚本,打两圈泰州麻将总是是真的有透视挂脚本1、打两...