C# 从下拉列表MVC 5传回多个选定值
我有以下属性C# 从下拉列表MVC 5传回多个选定值,c#,asp.net,asp.net-mvc,asp.net-mvc-5,multipleselection,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 5,Multipleselection,我有以下属性 public SelectList ListActivities { get; set; } // Will load all hobbies i,e football, golf etc and will be displayed in a dropdown public List<string> SelectedActivities { get; set; } // Trying to set with multiple selected values. 这是我
public SelectList ListActivities { get; set; } // Will load all hobbies i,e football, golf etc and will be displayed in a dropdown
public List<string> SelectedActivities { get; set; } // Trying to set with multiple selected values.
这是我的看法
<div class="col-lg-11">
@Html.DropDownListFor(m => m.UserDetails.SelectedActivities, Model.UserDetails.ListActivities, "Please Select", new { @class = "form-control", multiple = "multiple", id = "listActivities" })
</div>
我遇到的问题是,当我从“活动”下拉列表中选择多个选项,然后按页面上的“提交”并返回控制器时,所选活动为空
有人能解释一下吗?对于multi-select,您应该使用而不是Html.DropDownListFor,因为Html.DropDownListFor返回单个选择元素 因此,要使其起作用,只需将您的视图更改为:
<div class="col-lg-11">
@Html.ListBoxFor(m => m.UserDetails.SelectedActivities, Model.UserDetails.ListActivities, "Please Select", new { @class = "form-control", id = "listActivities" })
</div>
可能重复的已尝试查看Firebug或开发人员工具中提交的请求参数。检查值是否正确提交。此处显示的代码工作正常。注意:为多重选择包含Please Select参数是没有意义的。如果选中该参数,您将在SelectedActivities中获得一个空值,并且您应该使用ListBoxFor,它为您添加多重属性。@Html.DropDownListFor with multiple=multiple与@Html.ListBoxFor相同-两者都使用多重属性生成标记属性ListBoxFor保存了一些不必要的输入,但这一点都没有区别。你完全正确。我没有注意到多属性的用法