如何仅验证C#MVC中的某些字符串?

时间:2015-05-13 23:04:33

标签: c# asp.net-mvc validation

如何只验证C#中的某些字符串?例如,如果我有4种颜色RED,BLUE,GREEN和BLACK我只希望用户输入这些颜色。如果用户输入其他颜色,例如WHITE,则代码会抛出错误,如" 如何在MVC C#模型验证中使用它?

例如: 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);
        }

1 个答案:

答案 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();
        }
    }