Удаленная проверка не работает
У меня есть вид:
@model MvcApplication2.Models.HomeModel
@{
ViewBag.Title = "Home";
}
<h2>Home</h2>
<a>Witaj</a>
@Model.UserName
@using (Html.BeginForm())
{
<a>Podaj hasło</a>
@Html.PasswordFor(m => m.Password)
@Html.ValidationMessageFor(x => x.Password)
<input type="submit" />
}
и контроллер
using System.Web.Mvc;
using System.Web.UI;
using MvcApplication2.Models;
namespace MvcApplication2.Controllers
{
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
public class HomeController : Controller
{
public ActionResult Index()
{
HomeModel model = new HomeModel() { UserName = "John" };
return View(model);
}
public JsonResult CheckPassword(string password)
{
bool result = false;
if (password.Length < 4)
{
result = false;
}
else
{
result = true;
}
return Json(result, JsonRequestBehavior.AllowGet);
}
}
}
и модель:
using System.Web.Mvc;
namespace MvcApplication2.Models
{
public class HomeModel
{
public string UserName { get; set; }
[Remote("CheckPassword", "Home", ErrorMessage = "Wpisz lepsze hasło")]
public string Password { get; set; }
}
}
Когда должен срабатывать метод удаленной проверки? Когда я нажимаю кнопку ввода? Что я делаю не так?
2 ответа
Вам не хватает ненавязчивых ссылок jQuery в вашем представлении / Razor Layout?
<script src="@Url.Content("~/Scripts/jquery-1.7.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
В методе CheckPassword переменная пароля не совпадает с паролем модели. Должен быть в TitleCase:- CheckPassword(строка Password)