在强类型中使用 Asp.net MVC 验证非常容易,但如果您有一个非强类型的视图,您仍然可以轻松完成。
假设您在控制器中有以下操作。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Login(string userEmail, string password)
{
if (ValidateLogin(userEmail, password))
{
//redirect
}
return View();
}
你的验证方法看起来像,
private bool ValidateLogin(string userEmail, string password)
{
if (String.IsNullOrEmpty(userEmail))
{
ModelState.AddModelError("username", "You must specify a username.");
}
if (password == null || password.Length == 0)
{
ModelState.AddModelError("password",
String.Format(CultureInfo.CurrentCulture,
"You must specify a password."));
}
return ModelState.IsValid;
}
现在在您的视图中,在这种情况下 login.aspx 在您的视图文件夹中,您可以通过这种方式显示您的验证。
<label for="useremail">User Email:</label>
<%= Html.TextBox("useremail") %>
<%= Html.ValidationMessage("useremail")%>
除此之外,您还可以使用以下辅助方法显示验证摘要或仅显示通用方法。
<%= Html.ValidationSummary(true, "Please correct the errors.") %>