[英]mvc 3 validation annotation error messages are not displayed next to the fields form
我是MVC的新手,我拥有的是消息传递类
[Table("employeeTable")]
public class Messsaging : IValidatableObject
{
public virtual int id { set; get; }
[Required]
public virtual String name { set; get; }
[Required]
public virtual String country { set; get; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (name.Equals(null))
{
yield return new ValidationResult("this field can'not be empty");
}
}
}
我有一个创建动作方法
[HttpPost]
public ActionResult Create(Messsaging form)
{
var newmessage = messageContext.messages.Add(form);
messageContext.SaveChanges();
return RedirectToAction("Index");
}
当我提交表单时,我在项目内收到验证错误异常消息,而不是在我的创建表单上显示错误消息! 任何想法都要先谢谢大家。
您需要在保存之前检查ModelState
,如果无效,请返回视图
[HttpPost]
public ActionResult Create(Messsaging form)
{
if (!ModelState.IsValid)
{
return View(form); // returns the view with errors
}
// It OK so save
}
您忘记在ValidationResult构造函数中设置字段名称,而使用string.IsNullOrWhiteSpace()来检查name属性的值。
[Table("employeeTable")]
public class Messsaging : IValidatableObject
{
public virtual int id { set; get; }
[Required]
public virtual String name { set; get; }
[Required]
public virtual String country { set; get; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (string.IsNullOrWhiteSpace(name))
{
yield return new ValidationResult("this field can'not be empty", new[] { "name" });
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.