Asp.net mvc 引导Multiselect在HttpPost上获取选定值
我正在使用它,我的问题是我无法在ASP.NETMVC上的HttpPost上获取所选的值 遇到的问题:Asp.net mvc 引导Multiselect在HttpPost上获取选定值,asp.net-mvc,twitter-bootstrap,asp.net-mvc-4,Asp.net Mvc,Twitter Bootstrap,Asp.net Mvc 4,我正在使用它,我的问题是我无法在ASP.NETMVC上的HttpPost上获取所选的值 遇到的问题: 单击“保存”后,屏幕上仅显示第一个选定值 模型。(已解决) 单击“保存”后,屏幕上仅显示第一个选定值 下拉列表 Sample.chtml: @model SampleProject.Models.SampleViewModel @using (Html.BeginForm()) { @Html.DropDownListFor(model => model.Selected,
- 单击“保存”后,屏幕上仅显示第一个选定值 模型。(已解决)
- 单击“保存”后,屏幕上仅显示第一个选定值 下拉列表
@model SampleProject.Models.SampleViewModel
@using (Html.BeginForm())
{
@Html.DropDownListFor(model => model.Selected, new SelectList(Model.List, "value", "text"), new { @class = "multiselect form-control", multiple = "multiple" })
<input type="submit" value="Save" />
}
控制器:
public class DashboardController : Controller
{
public ActionResult Sample()
{
SampleViewModel model = new SampleViewModel();
model.List = new SelectList(new List<string>() { "1", "2", "3" });
return View(model);
}
[HttpPost]
public ActionResult Sample(SampleViewModel model)
{
model.List = new SelectList(new List<string>() { "1", "2", "3" });
return View(model);
}
}
公共类仪表板控制器:控制器
{
公共行动结果样本()
{
SampleViewModel模型=新的SampleViewModel();
model.List=newselectlist(newlist(){“1”、“2”、“3”});
返回视图(模型);
}
[HttpPost]
公共行动结果示例(SampleViewModel模型)
{
model.List=newselectlist(newlist(){“1”、“2”、“3”});
返回视图(模型);
}
}
选择:
我无法在HttpPost上正确获取所选值
代码隐藏/HttpPost:(错误)
HttpPost之后:(正确)
A
发回一个值数组(不是单个值)。例如,您选择的属性必须是IEnumerable
public string[] Selected { get; set; }
旁注:由于文本和值属性相同,您可以通过设置列表
属性选择列表
public SelectList List { get; set; }
然后在控制器中
model.List = new SelectList(new List<string>() { "1", "2", "3" })
model.List=new SelectList(new List(){“1”、“2”、“3”})
(虽然不清楚您为什么不使用int
)在任何地方都看不到这个答案,因此要解决回邮后只选择1项的问题,您需要使用:
@Html.ListBoxFor(..
instead of @Html.DropDownListFor
先生,单击“保存”后,我遇到了另一个问题。单击“保存”后,如果在下拉列表上显示为“已选定”,则只有第一个选定的值而不是多个项目。(请参阅上面的第3张图片)。您在返回视图时没有重新分配选择列表。
。先生,我已经完成了,但它仍然只返回一个选定的项目。(参考上面的代码。)什么是string[]Selecteds=model.Selected代码>用于?(在何处使用值Selecteds
)。您是否已将属性Selected
更改为typeofstring[]
?您还应该删除引导插件,并使用默认的HTMLSelect元素对其进行测试
@Html.ListBoxFor(..
instead of @Html.DropDownListFor