Почему мой код проверки для. net core 3. не работает, как предполагалось? - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь выполнить проверку формы моего отчета, где отчет можно отправить только в том случае, если в электронном письме указано "Sample@email.com". Моя проблема в том, что код работает без проверки, но когда я включаю код проверки if (!ModelState.IsValid){return View("Create");} в мой контроллер, проверка работает отлично, но когда электронное письмо корректно, оно просто обновляет страницу, не отправляя ее или не перенаправляя в представление отправки

Контроллер:

        [HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult Submit(Reports report)
        {
            if (!ModelState.IsValid)
            {
                return View("Create");
            }

        _reportRepository.CreateReport(report);
        return View();

Код проверки:

public class EmailValidation : ValidationAttribute
    {
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var report = (Reports)validationContext.ObjectInstance;
            if (report.Email == "Sample@email.com")
                {

                    return ValidationResult.Success;
            }
            return new ValidationResult("Invalid email");
        }
    }

Отчет:

public class Reports
    {
        [Key]
        public int ReportId { get; set; }
        [Required(ErrorMessage = "Please enter email.")]
        [Display(Name = "Email :")]
        [EmailValidation(ErrorMessage ="enter valid email")]
        public string Email { get; set; }
    }

Создать вид:

@model Reports
@using Microsoft.AspNetCore.Identity

@inject UserManager<IdentityUser> UserManager
<body>

    <form asp-action="Submit" method="post" role="form">
        <div class="container1">
         <div class=" form-group row">
                <label asp-for="Email" class="col-md-2 control-label"></label>
                <div class="col-md-3">
                    <input asp-for="Email" class="form-control" />
                    <span asp-validation-for="Email" class="text-danger"></span>
                </div>
            </div>
        <div class="form-group row float-right">
            <div class="col-md-offset-2 col-md-5 float-md-left">
                <input type="submit" class="btn btn-primary" value="Submit" />
            </div>
        </div>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...