【发布时间】:2014-11-20 14:28:23
【问题描述】:
我添加了@Html.ListBoxFor 我能够正确绑定它但无法在提交后获得多个选定的项目。我错过了什么吗?
// Below is the code for binding
public ActionResult Create()
{
var cities = So.BL.City.GetCities();
SelectList cityList = new SelectList(cities, "Id", "Name", cityId);
TempData["Cities"] = cityList;
return View("Create");
}
[HttpPost]
public ActionResult Create([Bind(Include="Keywords,Cities")] So.Entities.Approval filter)
{
if (ModelState.IsValid)
{
}
return View(filter);
}
下面是视图文件代码。我没有只有实体的视图模型
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table style="width: 100%">
<tr>
<td>
Cities:
</td>
</tr>
<tr>
@* <td>
@Html.DropDownList("Cities", (SelectList)TempData["Cities"])
</td>*@
</tr>
<tr>
<td>
@Html.ListBoxFor(model => model.Id, new SelectList(TempData["Cities"] as MultiSelectList, "Value","Text",new { style = "width:250px" })))
</td>
</tr>
<tr>
<td>
@Html.LabelFor(model => model.Keywords)
</td>
</tr>
<tr>
<td>
@Html.EditorFor(model => model.Keywords)
</td>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>
<input type="submit" value="Create" class="button" />
</td>
</tr>
</table>
【问题讨论】:
-
model.Id是什么类型? -
实体@model So.Entities.FBApprovalFilter
-
对不起,这对我来说没有多大意义。让我们更准确一点——如果属性
Id是什么类型?它是一些原语的列表,例如整数还是字符串?还是只是一个int?对于多项选择,您需要一个列表来接收所有选定的值 -
好吧,假设用户选择了多个值。因此发布了多个整数。单个 int 字段如何容纳所有这些?