我是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");
}
当我提交表单时,我在项目中得到验证错误异常消息,而不是在我的创建表单上显示错误消息!!任何想法都提前感谢你们。
答案 0 :(得分:0)
您需要在保存之前检查ModelState
,如果无效,请返回视图
[HttpPost]
public ActionResult Create(Messsaging form)
{
if (!ModelState.IsValid)
{
return View(form); // returns the view with errors
}
// It OK so save
}
答案 1 :(得分:0)
您忘记在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" });
}
}
}