0
這個當前的項目我想獲得一個註冊表單並通過驗證。我對C#和ASP.NET MVC4相當陌生。我試圖阻止用戶被添加到傳入的Post數據的集合無效。這是我的控制器代碼,其次是我的用戶類與規則使用System.ComponentModel.DataAnnotationsASP.NET MVC4服務器端驗證
如果數據是無效的,那麼我想拋出一個自定義錯誤(我還沒有開始實現這一點)。
控制器:
[HttpPost]
public ActionResult Confirm(FormCollection form)
{
string firstName = form["textFirstName"];
string lastName = form["textLastName"];
string email1 = form["textEmail"];
string password1 = form["passwordPW1"];
User newUser = new User { fName = firstName, lName = lastName, email = email1, password = password1 };
if (ModelState.IsValid)
{
_users.Add(newUser);
}
return RedirectToAction("Login", "Countdown");
}
型號:
public class User
{
[Required]
[StringLength(50, MinimumLength = 1)]
public String fName { get; set; }
[StringLength(50)]
public String lName { get; set; }
[Required]
[RegularExpression(@"^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$")]
public String email { get; set; }
[Required]
[StringLength(50, MinimumLength = 4)]
public String password { get; set; }
}
有什麼問題? – theLaw 2014-11-04 08:24:52
當我通過它無效輸入它仍然會將用戶添加到集合。 – 2014-11-04 08:26:18
您似乎正在手動執行模型聯編程序將自動執行的操作。將您的方法簽名更改爲'Confirm(User data)',並確保HTML中的字段名稱與屬性名稱匹配(您可以使用@ Html.TextBoxFor()等)。然後你的驗證屬性將起作用。 – GSerg 2014-11-04 08:26:20