MVC3 Razor - удаленная проверка не запускается - PullRequest
0 голосов
/ 28 ноября 2011

Я пытаюсь реализовать механизм «Забыли пароль», и я подумал, что было бы лучше проверить имя пользователя и адрес электронной почты перед сбросом пароля и отправкой электронного письма.Я сделал это:

-- model:
public class ForgotPasswordModel
{
    [Required(ErrorMessageResourceType = typeof(AccountResources), ErrorMessageResourceName = "RequiredUserNameMessage")]
    [Display(ResourceType = typeof(AccountResources), Name = "UserNameDisplay")]
    [Remote("ValidateUser", "Account", ErrorMessage = "Unknown user")]
    public string UserName { get; set; }

    [Required(ErrorMessageResourceType = typeof(AccountResources), ErrorMessageResourceName = "RequiredEmailMessage")]
    [DataType(DataType.EmailAddress)]
    [Remote("ValidateEmailAddress", "Account", AdditionalFields = "UserName", ErrorMessage = "Wrong password"]
    [Display(ResourceType = typeof(AccountResources), Name = "EmailDisplay")]
    public string Email { get; set; }
}

-- validation controller ("Account"):
    public ActionResult ValidateUser(string username)
    {
        bool result=false;
        MembershipUser currentUser = Membership.GetUser(username);

        result = (currentUser != null) && (currentUser.UserName.Equals(username));
        return Json(result, JsonRequestBehavior.AllowGet);
    }

    public ActionResult ValidateEmailAddress(string username, string email)
    {
        bool result = false;
        MembershipUser currentUser = Membership.GetUser(username);

        result = (currentUser != null) && (currentUser.Email.Equals(email));
        return Json(result, JsonRequestBehavior.AllowGet);
    }

-- in the _Layout.cshtml view I included
<script src="@Url.Content("~/Scripts/jquery-1.5.1.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js files")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

<script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js" type="text/javascript"></script>

-- in the Web.config file I have the required keys: 
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

Я не могу запустить «Удаленную» проверку, ни клиент-сторона, ни сторона сервера (при отправке).Однако проверка «Требуется» работает, как и ожидалось.

Я застрял, пожалуйста, предложите решение, заранее спасибо.

...