Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有ASP.NET MVC2的自定义CMS,存在验证问题_Asp.net_Asp.net Mvc 2_Validation - Fatal编程技术网

带有ASP.NET MVC2的自定义CMS,存在验证问题

带有ASP.NET MVC2的自定义CMS,存在验证问题,asp.net,asp.net-mvc-2,validation,Asp.net,Asp.net Mvc 2,Validation,如何完全控制像[RequiredErrorMessage=Title is required]这样的数据注释的处理方式 目前,我的系统忽略所需的注释,因此在编辑它时接受空值 奇怪的是,这在数据库中没有改变,因为数据库中的数据/字段是完整的。所以我猜LINQ在本地存储了一些恼人的东西 你需要更多的细节吗?它基本上只是MVC2中简单的GET/POST操作方法 编辑: 模型如下所示: public class HomeContent { [Required(ErrorMessage = "*

如何完全控制像[RequiredErrorMessage=Title is required]这样的数据注释的处理方式

目前,我的系统忽略所需的注释,因此在编辑它时接受空值

奇怪的是,这在数据库中没有改变,因为数据库中的数据/字段是完整的。所以我猜LINQ在本地存储了一些恼人的东西

你需要更多的细节吗?它基本上只是MVC2中简单的GET/POST操作方法

编辑:

模型如下所示:

public class HomeContent {
    [Required(ErrorMessage = "* Id is required")]
    public int Id { get; set; }

    [Required(ErrorMessage = "* Title is required")]
    [StringLength(50, ErrorMessage = "* Title is too long")]
    public string Title { get; set; }

    [Required(ErrorMessage = "* Content is required")]
    [StringLength(8000, ErrorMessage = "* Content is too long")]
    //8000 = varchar(MAX)
    public string Content { get; set; }

    [Required(ErrorMessage = "* You need to specify a language")]
    public int Language { get; set; }
}
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult HomeControl(HomeContent homeContent) {
        if (!DatabaseService.Instance.ModifyHomeContent(homeContent)) {
            ViewData["Error"] = "An error occured during saving data to the page.";
        } else {
            ViewData["Error"] = "Changes has been saved!";
        }

        return View();
    }
控制器操作如下所示:

public class HomeContent {
    [Required(ErrorMessage = "* Id is required")]
    public int Id { get; set; }

    [Required(ErrorMessage = "* Title is required")]
    [StringLength(50, ErrorMessage = "* Title is too long")]
    public string Title { get; set; }

    [Required(ErrorMessage = "* Content is required")]
    [StringLength(8000, ErrorMessage = "* Content is too long")]
    //8000 = varchar(MAX)
    public string Content { get; set; }

    [Required(ErrorMessage = "* You need to specify a language")]
    public int Language { get; set; }
}
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult HomeControl(HomeContent homeContent) {
        if (!DatabaseService.Instance.ModifyHomeContent(homeContent)) {
            ViewData["Error"] = "An error occured during saving data to the page.";
        } else {
            ViewData["Error"] = "Changes has been saved!";
        }

        return View();
    }

我发现围绕服务类方法调用包装ifModelState.IsValid{…},它将完全根据数据注释进行验证。

您的问题不清楚。你的模特看起来怎么样?在什么属性上应用这些必需的属性?我编辑了我的问题。我可能已经自己回答了,但我不确定这是否正确。是的,你应该用ModelState.isValid check包装你的服务类