猿问

在下拉列表中选择的值未传递给控制器

我按照ASP.NET Core MVC 中的 Select Tag Helper从方法调用填充多选下拉列表,但我选择的值没有传递给控制器。


<form asp-controller="ApiController" asp-action="Usage">

<label asp-for="Api"></label>

<div>

    <select id="api" class="form-control" asp-for="Api" asp-items="@Model.Api">


    </select>

</div>

</form>

此下拉列表中的选项包含所有 API。


模型


public class Model

{

    public List<SelectListItem> Api { get; set; }

}

当我查看 action 方法时,该模型具有NullApi的值。


墨色风雨
浏览 131回答 1
1回答

慕的地8271018

该asp-for标签中保存选中的项目,它不应该是一样的收集集合asp-items。因此,在模型上添加一个新属性,该属性与 API 的 SelectListItems 的值类型集相匹配(在此示例中使用 int),如下所示public class Model{&nbsp; &nbsp; public int selectedApi { get; set; }&nbsp; &nbsp; public List<SelectListItem> Api { get; set; }}并在所选项目的选择标签上使用它<select id="api" class="form-control" asp-for="selectedApi" asp-items="@Model.Api"></select>
随时随地看视频慕课网APP
我要回答