Получение данных из 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.