При заполнении формы пользователь получает приглашение выбрать конкретный вариант из выпадающего меню.Выбранная опция вместе с остальными входами должна быть отправлена на мой контроллер для обработки данных.
Теперь я застрял в том, как отправить выбранную опцию.
Iхочу взять выбранную станцию и отправить ее Id на мой контроллер, который будет использоваться для создания нового завода.
Я бы хотел сделать что-то вроде этого: <input asp-for="stationId" value=@selectedStation.Id">
, но ради жизни я не могувыяснить, как получить выбранную опционную станцию и установить для нее значение stationId для модели при публикации формы.
<form asp-controller="Plant" asp-action="Create" method="post">
<div class="form-group">
<label for="name">Name:</label>
<input id="name" asp-for="Name" class="form-control" />
<span asp-validation-for="Name"></span>
</div>
<div class="form-group">
<label>Station</label>
<select class="form-control" id="stationId">
@foreach (var station in Model.Stations)
{
<option>@station.Name</option>
}
</select>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
модель представления, используемая для формы:
public string Name { get; set; }
public string Description { get; set; }
public int StationId { get; set; }
public List<Station> Stations { get; set; }
И, наконец, действие контроллера:
[Authorize]
[HttpPost]
public IActionResult Create(CreatePlantViewModel createPlant)
{
var plant = new Plant
{
StationId = createPlant.StationId,
Description = createPlant.Description,
Name = createPlant.Name
};
_context.Add(plant);
_context.SaveChanges();
return RedirectToAction("Index");
}
РЕДАКТИРОВАТЬ: С помощью пользователя переполнения стека это было то, что нужно было изменить в элементе выбора для станций:
<div class="form-group">
<label>Station</label>
<select class="form-control" id="stationId" asp-for="StationId">
@foreach (var station in Model.Stations)
{
<option value="@station.Id">@station.Name</option>
}
</select>
</div>