为什么我的远程属性不工作的注册方法和视图

本文关键字:工作 注册 方法 视图 我的 程属性 属性 为什么 | 更新日期: 2023-09-27 17:53:58

当我从UserName文本框移动焦点时,页面不呈现错误消息,也不允许提交页面。

// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = new ApplicationUser { UserName = model.UserName};
        user.UserName = model.UserName;
        var result = await UserManager.CreateAsync(user, model.Password);
        if (result.Succeeded)
        {
            await this.UserManager.AddToRoleAsync(user.Id, model.Name);
            return RedirectToAction("Index","User");
        }
        AddErrors(result);
    }
    return View(model);
}
[HttpPost]
public JsonResult doesUserNameExist(string UserName)
{
    var user = Membership.GetUser(UserName);
    return Json(user == null);
}

Inside my AccountViewModel:

public class RegisterViewModel
{
    [Required]
    [Display(Name = "User Name")]
    [Remote("doesUserNameExist", "Account", ErrorMessage = "{0} User name already exists. Please enter a different user name.")]
    public string UserName { get; set; }
}

在我的bundle config:

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.validate*"));

为什么我的远程属性不工作的注册方法和视图

您应该在doesUserNameExist之前删除[HttpPost],并像这样编辑doesUserNameExist:

public JsonResult doesUserNameExist(string username)
{
    var user = Membership.GetUserByName(username.Trim());
    return user == null ? 
        Json(true, JsonRequestBehavior.AllowGet) : 
        Json(string.Format("{0} is not available.", username),
            JsonRequestBehavior.AllowGet);
}