Asp.net core mvc в агрументе null
Есть метод post
[Authorize(Roles = "Admin")]
[HttpPost]
async public Task<IActionResult> StudentsAdd([FromForm]StudentModel student)
{
Console.WriteLine($"{student.Name} 1");
Console.WriteLine($"{student.Surname} 2");
Console.WriteLine($"{student.Middle_name} 5");
Console.WriteLine($"{student.Age} 4");
Console.WriteLine($"{student.Group} 5");
await using var con = new NpgsqlConnection("Server=localhost;Port=5432;Username=postgres;Password=18082004;Database=users_db");
const string sql = @"
INSERT INTO students (name, surname, middle_name, age, group_name)
VALUES (@Name, @Surname, @Middle_name, @Age, @Group);
";
await con.OpenAsync();
const string checkGroupSql = @"SELECT COUNT(1) FROM groups WHERE group_name ILIKE @group;";
if (string.IsNullOrWhiteSpace(student.Group))
{
return Content("Group is null or empty");
}
await using var checkGroupCmd = new NpgsqlCommand(checkGroupSql, con);
checkGroupCmd.Parameters.AddWithValue("group", student.Group ?? (object)DBNull.Value);
var groupExists = (long)await checkGroupCmd.ExecuteScalarAsync() > 0;
if (!groupExists)
{
return View("GroupNotFound");
}
await using var command = new NpgsqlCommand(sql, con);
command.Parameters.AddWithValue("Name", student.Name ?? (object)DBNull.Value);
command.Parameters.AddWithValue("Surname", student.Surname ?? (object)DBNull.Value);
command.Parameters.AddWithValue("Middle_name", student.Middle_name ?? (object)DBNull.Value);
command.Parameters.AddWithValue("Age", student.Age);
command.Parameters.AddWithValue("Group", student.Group ?? (object)DBNull.Value);
await command.ExecuteNonQueryAsync();
return View("AddStudent");
}
есть модель StudentModel
public class StudentModel
{
public string? Name { get; set; }
public string? Surname { get; set; }
public string? Middle_name { get; set; }
public int Age { get; set; }
public string? Group { get; set; }
}
есть представление
@using Diplom2.Models
@model StudentModel
@{
ViewData["Title"] = "Добавить студента";
}
<h2>@ViewData["Title"]</h2>
<form asp-action="StudentsAdd" asp-controller="Admin" method="post" class="student-form">
<div class="form-group">
<label asp-for="Name">Имя</label>
<input asp-for="Name" class="form-control" placeholder="Введите имя" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Surname">Фамилия</label>
<input asp-for="Surname" class="form-control" placeholder="Введите фамилию" />
<span asp-validation-for="Surname" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Middle_name">Отчество</label>
<input asp-for="Middle_name" class="form-control" placeholder="Введите отчество" />
<span asp-validation-for="Middle_name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Age">Возраст</label>
<input asp-for="Age" type="number" min="0" class="form-control" placeholder="Введите возраст" />
<span asp-validation-for="Age" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Group">Группа</label>
<input asp-for="Group" class="form-control" placeholder="Введите группу" />
<span asp-validation-for="Group" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-primary mt-3">Добавить студента</button>
</form>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
я получаю в методе StudentsAdd в агрументе null почему?