我正在用这个引导多选我的问题是我无法在 ASP.Net MVC 上的 HttpPost 上获取所选值。
遇到的问题:
示例.html:
@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" />
}
Model:
public class SampleViewModel
{
public string[] Selected { get; set; }
public SelectList List { get; set; }
}
控制器:
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);
}
}
选择:
我无法在 HttpPost 上正确获取所选值
Code Behind/HttpPost: (Wrong)
HttpPost 之后:(正确)
A <select multiple="multiple">
回发一组值(而不是单个值)。你的财产Selected
需要是IEnumerable
, 例如
public string[] Selected { get; set; }
旁注:由于文本和值属性相同,因此您可以通过将List
财产SelectList
public SelectList List { get; set; }
然后在控制器中
model.List = new SelectList(new List<string>() { "1", "2", "3" })
(虽然不清楚为什么你不使用int
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)