模型到控制器/查看错误消息

时间:2014-04-05 20:37:46

标签: c# asp.net-mvc

我想检查是否可以从模型向控制器发送消息,我将解释。

所以我有一个模型

public class Car()
{
   public int Id { get; set; }
   public string Make { get; set; }
}

因此,当用户添加新Car时,我可以通过使用Fluent API或[Required]注释来使其成为必需。

但是,如果我想确保我只有某些角色,那么我就不会想要那里的百分比符号(除非那里有车?)。

所以我以为我会使用构造函数:

public class Car()
{
   public Car(string _name)
   {
     if(this.Make.Contains("%"))
     {
       //Let the user know this isn't valid there is an error
     }
   }

   public int Id { get; set; }
   public string Make { get; set; }
}

我通常将错误逻辑放在Controller中。所以我会

public ActionResult AddCar(Car car)
{
  if(car.Make.Contains("%"))
  {
     //let user know this is not valid
  }
  if(ModelState.IsValid)
  {

  }
  ///
}

但后来我想,我永远不会想要一辆带有百分号的汽车(我已经选择了%符号,但实际上我会使用一系列验证,例如作为一个包含无效字符的列表,以及我允许用户添加汽车的每个地方,我都会复制验证代码,这只会感觉效率低下。

可能在控制器中产生错误检查是正确的方法吗?

再次为了清楚起见。问题是,有没有办法将消息从模型传递给控制器​​,然后我可以将其传递给用户的视图?

亲切的问候

1 个答案:

答案 0 :(得分:0)

您不应在控制器中使用验证逻辑,我们DataAnnotations允许我们验证模型的属性值。

出于您的目的,您可以使用RegularExpression验证器。

有关详细信息,请参阅此Link