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