Получение данных из View ASP .Net Core

В ASP совсем новичок. Не могу получить введение данные в View. В окне ввожу значение, нажимаю кнопку "Create", но в контроллер значение не попадает.

Код View:

@model ComponentModel

@{
    ViewData["Title"] = "Create Component";
}
<div class="card col-md-7 m-auto">
    <div class="card-header">
        <h2 class="mb-2 text-center">Create Component</h2>
    </div>
    <div class="card-body">
        <form asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="Name" class="control-label ml-md-1"></label>
                <input asp-for="Name" class="form-control"/>
                <span asp-validation-for="Name" class="text-danger"></span>
            </div>
            <div class="form-group text-center">
                <input type="submit" value="Create" class="btn btn-primary"/>
            </div>
        </form>
    </div>
</div>

<div class="text-center mt-3">
    <a class="btn btn-outline-primary" asp-action="Index">Back to List</a>
</div>
[HttpGet]
public IActionResult Create() => View();

[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create(ComponentModel componentModel)\\В параметре у componentModel все филды дефолтные
{
    if (ModelState.IsValid)
    {
         var component = _mapper.Map<Component>(componentModel);
         _repository.Create(component);

         return RedirectToAction("Index");
    }

    return View(componentModel);
}

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

Автор решения: Andrei Brizhak

судя по коду, вы используете ASP.NET Core MVC.И в представлении Вы не указали явно директиву для использования метода типа Post. method="post"

<form method="post" asp-action="Create">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="Name" class="control-label ml-md-1"></label>
                <input asp-for="Name" class="form-control"/>
                <span asp-validation-for="Name" class="text-danger"></span>
            </div>
            <div class="form-group text-center">
                <input type="submit" value="Create" class="btn btn-primary"/>
            </div>
        </form>

Так же, можете явно указать привязку всех свойств модели, для работы с ними в контроллере указав над ссылкой на модель, в квадртных скобка специальный атрибтут [BindProperty]. Вы можете посмотреть в репозитории пример рабочего кода с CRUD-операциями для ASP.NET Core MVC.

→ Ссылка