我是Stackoverflow的新手,我刚刚开始使用。net Core和我第一次使用identity。我基本上是使用ajax调用控制器来查看用户名是否已经存在。然后我做了一些研究,发现我可以使用RemoteAttribute下面是我的RegisterViewModel。
public class RegisterViewModel
{
[Required]
[StringLength(100, ErrorMessage = "some error", MinimumLength = 2)]
[DataType(DataType.Text)]
[Display(Name = "Username")]
[RegularExpression(@"(^[w]+$)", ErrorMessage = "some error")]
[Remote("CheckUserName", "Account", HttpMethod = "POST", ErrorMessage = "some error")]
public string Username { get; set; }
在我的控制器中,我有这个
public async Task<JsonResult> CheckUserName(string username)
{
var user = db.Users.Where(x => x.UserName == username).FirstOrDefault();
if (user == null)
return Json(true);
else
return Json(false);
}
,但我的数据上下文总是抛出对象引用不设置为对象的实例,所以我使用FindByNameAsync Identity方法总是返回null,见下文。
public async Task<JsonResult> CheckUserName(string username)
{
var user = await _userManager.FindByNameAsync(username);
//but user is always null ??
}
我不知道我到底做了什么,但现在似乎正在工作。我添加了
[AllowAnonymous]
属性,可能已经完成了。但它不在那里,它应该抛出401错误。不管怎样,谢谢大家的帮助。