Модель не проходит валидацию C# MVC ASP.NET CORE

Всем привет ребята. Модель не проходит валидацию.

Контроллер

[HttpPost]
 [ValidateAntiForgeryToken]
 public async Task<IActionResult> Create(CreateUserViewModel model, string password)
 {
     if (model.User != null)
     {
         var department = await _context.Departments.FindAsync(model.User.DepartmentId);
         var position = await _context.Positions.FindAsync(model.User.PositionId);
         if (department != null)
         {
             model.User.Department = department; // Заполнение ссылки на объект Department
         }
         if (position != null)
         {
             model.User.Position = position; // Заполнение ссылки на объект Position
         }

         if (ModelState.IsValid)
         {
             var result = await _userManager.CreateAsync(model.User, password);
             if (result.Succeeded)
             {
                 return RedirectToAction(nameof(Create)); // Перенаправляем на страницу создания пользователя
             }

             foreach (var error in result.Errors)
             {
                 ModelState.AddModelError(string.Empty, error.Description);
             }
         }
     }

     // Логирование ошибок валидации
     foreach (var state in ModelState)
     {
         foreach (var error in state.Value.Errors)
         {
             Console.WriteLine($"Property: {state.Key} Error: {error.ErrorMessage}");
         }
     }

     // Обязательно загрузите списки Departments и Positions обратно в модель, если есть ошибки валидации
     model.Departments = await _context.Departments.ToListAsync();
     model.Positions = await _context.Positions.ToListAsync();
     return View(model);
 }

Модель

    public class CreateUserViewModel
    {
        public User User { get; set; }
        public IEnumerable<Department> Departments { get; set; }
        public IEnumerable<Position> Positions { get; set; }
    }

    public class User : IdentityUser<int>
{

    [Required]
    public int DepartmentId { get; set; }
    public Department Department { get; set; }

    [Required]
    public int PositionId { get; set; }
    public Position Position { get; set; }
}

View

@using ManagerDoc.Models.ViewModel
@model CreateUserViewModel

<h2>Create User</h2>

<form asp-action="Create">
    <div class="form-group">
        <label asp-for="User.Email"></label>
        <input asp-for="User.Email" class="form-control" />
        <span asp-validation-for="User.Email" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="User.UserName"></label>
        <input asp-for="User.UserName" class="form-control" />
        <span asp-validation-for="User.UserName" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="User.DepartmentId">Department</label>
        <select asp-for="User.DepartmentId" class="form-control" asp-items="@(new SelectList(Model.Departments, "Id", "Name"))">
            <option value="">Select a Department</option>
        </select>
        @* <span asp-validation-for="User.DepartmentId" class="text-danger"></span> *@
    </div>
    <div class="form-group">
        <label asp-for="User.PositionId">Position</label>
        <select asp-for="User.PositionId" class="form-control" asp-items="@(new SelectList(Model.Positions, "Id", "Title"))">
            <option value="">Select a Position</option>
        </select>
        @* <span asp-validation-for="User.PositionId" class="text-danger"></span> *@
    </div>
    <div class="form-group">
        <label for="password">Password</label>
        <input type="password" id="password" name="password" class="form-control" />
        <span class="text-danger"></span>
    </div>
    <button type="submit" class="btn btn-primary">Create</button>
</form>

<a asp-action="Index">Back to List</a>

Validate

    <script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
<script src="~/js/site.js"></script>
@await RenderSectionAsync("Scripts", required: false)

Picture

Из Вьюхи


Ответы (0 шт):