Używam takich data annotations
public class LoginViewModel
{
[Required(ErrorMessage = "Podaj login")]
[Display(Name = "Nazwa użytkownika")]
public string Login { get; set; }
[Required(ErrorMessage = "Podaj hasło")]
[Display(Name = "Hasło")]
[DataType(DataType.Password)]
public string Password { get; set; }
[Display(Name = "Zapamiętaj logowanie")]
public bool RememberMe { get; set; }
}
Kontroler:
[HttpGet]
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(LoginViewModel login)
{
if (ModelState.IsValid)
{
return RedirectToAction("Index","Account");
}
return View(login);
}
Widok
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>LoginViewModel</h4>
<hr />
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.Login, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Login)
@Html.ValidationMessageFor(model => model.Login)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Password, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Password)
@Html.ValidationMessageFor(model => model.Password)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.RememberMe, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.RememberMe)
@Html.ValidationMessageFor(model => model.RememberMe)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
i w widoku przy próbie wysłania danych zamiast zdefiniowanych błędów zawsze wyskakuje The value 'jakaswartosc' is invalid.
Dodam że mam zrobiony podobny formularz dla rejestracji i w nim wszystko działa, wie ktoś o co może chodzić?