2015-05-13 29 views
-1

如何驗證C#中只有某些字符串?例如,如果我有4種顏色紅色,藍色,綠色和黑色,我只希望用戶輸入這些顏色。如果用戶輸入其它顏色如白色比,代碼拋出類似「 如何在MVC C#我的模型驗證使用此如何驗證C#MVC中的某些字符串?

例如一個錯誤: MODEL:

public int ID {get; set;} 
public string color {get; set;} 

控制器:

[HttpPost] 
public ActionResult Create(
      [Bind(Include = "ID, color")] tblColor myColor) 
     { 
      try { 
       if (ModelState.IsValid && ModelState != ModelState) 

    if(myColor == RED, GREEN, BLUE, BLACK) 
{ 
        db.Projects.Add(myColor); 
        db.SaveChanges(); 
        return RedirectToAction("Index"); 
} 
else 
{ 
// error == "You are only allow to insert one of the RED, BLUE, GREEN, BLACK"; 
} 
       } 
      } 
      catch (Exception) 
      { 
       // Error message 
      } 
      return View(myColor); 
     } 
+3

請告訴我們你已經嘗試什麼,以及如何其失敗,而不是建議我們寫吧您。 – paqogomez

+1

最簡單的用戶界面只是使用下拉列表,但如果您想要惹惱用戶,則可以始終使用'[RegularExpression]'屬性。 –

+0

如果你有一套有限的選擇,然後給他們選擇這些選擇,而不是強迫他們以文本形式輸入,並可能使他們錯誤。使用下拉菜單,單選按鈕,列表框等......然後只能選擇那些選項。 –

回答

0

我會建議使用一個下拉框與值,但仍然無法驗證響應

對於服務器端驗證,並假設你通過一個參數來的價值,像這樣將工作:

[HttpPost] 
    public ActionResult Submit(string color) 
    { 
     string[] validColors = new string[] { "RED", "BLUE", "GREEN", "BLACK" }; 
     if (!validColors.Contains(color)) 
     { 
      ViewBag.ErrorMessage = color + " is not a valid color."; 
      return View(); 
     } 
    } 
相關問題