public class User
{
public int Id { get; set; }
[Required]
[StringLength(50)]
public string Username { get; set; }
// Other properties
}
[HttpPost]
public async Task Create(User user)
{
if (ModelState.IsValid)
{
var existingUser = await _userManager.FindByNameAsync(user.Username);
if (existingUser != null)
{
ModelState.AddModelError("Username", "Username already taken");
return View(user);
}
// Save the user
// ...
return RedirectToAction(nameof(Index));
}
return View(user);
}
@section Scripts {
}
在UserController中添加以下方法:
[AllowAnonymous]
[HttpGet]
public async Task IsUsernameTaken(string username)
{
var existingUser = await _userManager.FindByNameAsync(username);
return Json(existingUser == null);
}