Что-то, что я считал простым, но, по-видимому, нет, по причине, которая в настоящее время неясна для меня.
Я пытаюсь подтвердить адрес электронной почты пользователя, который хочет зарегистрироваться на моем сайте.
Для этого я использую атрибут [Remote], который вызывает метод из другого контроллера и выполняет проверку.
За исключением того, что входной параметр этого метода всегда получает значение NULL, поэтому он не получаетадрес электронной почты, введенный пользователем.
Я увидел, что имя переменной должно совпадать с именем моей модели, и это так (по крайней мере, я так думаю?!).
У вас есть идея?
Модель прямо в RegistrationController
public class InputModel
{
[Remote("ValidateEmail", "Home", ErrorMessage = "This email his already used.")]
[Required]
[EmailAddress]
[Display(Name = "Email *")]
public string Email { get; set; }
}
**Home Controller where the method is**
public async Task<IActionResult> ValidateEmail(string Email)
{
var user = await _userManager.FindByNameAsync(Email);
bool result;
if (user.UserName == null)
{
result = true;
}
else
{
result = false;
}
return Json(result);
}
Вид
<div class="form-check-inline col-12">
<div class="col-4">
<label asp-for="Input.Email"></label>
</div>
<input asp-for="Input.Email" class="form-control" />
</div>
<div style="margin-left:33%">
<span asp-validation-for="Input.Email" class="text-danger"></span>
</div>