ASP.NET MVC多选下拉列表

kno*_*ker 17 .net c# asp.net asp.net-mvc jquery

我使用以下代码让用户在表单上选择多个位置.

@Html.DropDownListFor(m => m.location_code, Model.location_type, new { @class = "form-control", @multiple = "multiple" }).
Run Code Online (Sandbox Code Playgroud)

location_code是an List<int>,location_type List<SelectListItem>用数据填充.

代码确实返回控制器中的选定值,但是当用户单击编辑按钮时,传递的对象不显示所选值,而是显示正常的初始化下拉列表,未选择任何内容.

我真正想要的是,一旦用户提交表单(包括多个选定的值),它就会转到用户确认细节是否正确的页面.如果没有,他按下编辑按钮,对象再次传递给控制器​​.阶段它应该显示选择的多个值.其他字段表现正常.

对此有何见解?

Pan*_*tis 25

在你看来:

@Html.ListBoxFor(m => m.location_code, Model.location_type)
Run Code Online (Sandbox Code Playgroud)

这就是你所需要的.您正在使用ListBox控件,因此它已经是一个多选列表.

然后回到你的控制器,你可以得到这样的选定项目:

[HttpPost]
public string SaveResults(List<int> location_code)
{

    if (location_code!= null)
    {
        return string.Join(",", location_code);
    }
    else
    {
        return "No values are selected";
    }
}
Run Code Online (Sandbox Code Playgroud)