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

本文关键字:错误 消息 控制器 模型 | 更新日期: 2023-09-27 17:56:46

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

所以我有一个模型

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

因此,当用户添加新汽车时,我可以使用 Fluent API 或 [必需] 注释将其设置为必需。

但是,如果我想确保我只有某些字符,所以我不希望在那里使用百分比符号(除非那里有任何汽车?!

所以我想我会使用一个构造函数:

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; }
}

我通常将错误逻辑放在控制器中。所以我会有

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

但后来我想,我永远不会想拥有一辆带有 % 符号的汽车 Make(我选择了 % 符号,但实际上我会使用大量验证,例如包含无效字符的列表),并且我允许用户添加汽车的每个地方,我都会复制验证代码, 只是感觉效率低下。

也许在控制器中产生错误检查是正确的方法?

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

亲切问候

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

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

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

有关更多详细信息,请参阅此链接