簡體   English   中英

建模到控制器/查看錯誤消息

[英]Model to Controller / View Error Message

我要說明是否可以將消息從模型發送到控制器。

所以我有一個模特

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)
  {

  }
  ///
}

但是后來我想,我再也不想擁有帶有%符號的汽車了(我選擇了%符號,但實際上我會使用很多驗證方法,例如包含無效字符的列表) ,以及在允許用戶添加汽車的每個地方,我都會復制驗證碼,但效率低下。

也許在控制器中產生錯誤檢查是正確的方法?

再次為清楚起見。 問題是,有沒有一種方法可以將消息從模型傳遞到控制器,然后再傳遞給用戶視圖?

親切的問候

您不應該在控制器中使用驗證邏輯,我們有DataAnnotations ,它使我們可以驗證模型的屬性值。

出於您的目的,您可以為此使用RegularExpression驗證程序。

請參閱此鏈接以獲取更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM