我有2个独立的下拉列表。但是我无法从每个下拉列表中接收选定的值。如何将选定的ID传递给控制器?这是我的代码:
视图:
<form asp-controller="Aircrafts" asp-action="Compare" method="post" class="dropdown">
<select id="DropDown1" asp-for="@Model.Id" asp-items="@(new SelectList(@ViewBag.ListOfPlanes, "Id", "Name"))" onchange="this.form.submit();">
<option value="" selected disabled>Select vehicle</option>
</select>
</form>
<br/>
<form asp-controller="Aircrafts" asp-action="Compare" method="post" class="dropdown">
<select id="DropDown2" asp-for="@Model.Id" asp-items="@(new SelectList(@ViewBag.ListOfPlanes, "Id", "Name"))" onchange="this.form.submit();">
<option value="" selected disabled>Select vehicle</option>
</select>
</form>
Controller
不起作用
[HttpPost]
public IActionResult Compare(Plane DropDown1, Plane DropDown2)
{
return View();
}
模型
public class Plane
{
public int Id { get; set; }
public string Name { get; set; }
public int MaxSpeed { get; set; }
}
将您的下拉列表都包含在单个表单标签中,例如
<form asp-controller="Aircrafts" asp-action="Compare" method="post" class="dropdown">
<select id="DropDown1" asp-for="@Model.Id" asp-items="@(new SelectList(@ViewBag.ListOfPlanes, "Id", "Name"))" onchange="this.form.submit();">
<option value="" selected disabled>Select vehicle</option>
</select>
<select id="DropDown2" asp-for="@Model.Id" asp-items="@(new SelectList(@ViewBag.ListOfPlanes, "Id", "Name"))" onchange="this.form.submit();">
<option value="" selected disabled>Select vehicle</option>
</select>
</form>
选项2可以通过Ajax发送呼叫>