我在验证非强类型视图的数据时遇到问题。我正在更新该视图中3个不同模型的数据,并且我有验证方法,但我不知道如何显示验证消息。
我应该在哪里放置验证消息(对于强类型视图,我将它们放在ModelState中,我认为在这种情况下没有意义),我应该如何显示它们(我怀疑我将能够使用“validationmessagefor” “,也许是”validationmessage“某种方式)?
答案 0 :(得分:2)
使用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.") %>