C# 将单个列绑定到多选列表
我有一个名为Service的表,其中有一列名为TSBNumber。我试图在视图中以多选的形式显示该值。我被DataText和Data Value字段弄糊涂了,因为这是一个单独的字段,DataText和Value字段是相同的C# 将单个列绑定到多选列表,c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,我有一个名为Service的表,其中有一列名为TSBNumber。我试图在视图中以多选的形式显示该值。我被DataText和Data Value字段弄糊涂了,因为这是一个单独的字段,DataText和Value字段是相同的 var tsbNumbersList = (from se in db.ServiceEntry join r in db.System1 on se.SystemID equals r.ID
var tsbNumbersList = (from se in db.ServiceEntry
join r in db.System1 on se.SystemID equals r.ID
where se.Active == true && r.PlatformID == 1 && se.TSBNumber != null
select se.TSBNumber).ToList().Distinct()
我是否应该只传入集合,如果传入,则在视图的下拉列表中,我看到System.SelecListItem
<div class="bodyContent">
<span class="leftContent"><a id="qTipServiceTsbExportTsbSelection" href=''>
@Html.Label("TSB Number")</a> </span><span class="rightContent">
@Html.ListBoxFor(model => model.SelectedTsbs, new MultiSelectList(ViewBag.TsbNumber, Model.SelectedTsbs),
new { id = "Tsblstbox", name = "listbox", @class = "chosen-select", multiple = "multiple", data_placeholder = "Click here to Select Tsb Number...", style = "width:90%;", tabindex = "4" }
)
</span>
</div>
更改查询以删除select子句 并基于集合创建一个SelectList
ViewBag.TsbNumber = new SelectList(tsbNumbersList, "TSBNumber", "TSBNumber");
在我看来
@Html.ListBoxFor(model => model.SelectedTsbs, (SelectList)ViewBag.TsbNumber)
如果字符串[]SelectedTSB的值为[121,q231],则将选择第一个和第三个选项。您的意思是要同时显示TSBNumber的值并将其分配给属性SelectedTSB吗?查询返回字段,我希望该字段显示在多选下拉列表中。当用户从此下拉列表中选择值时,索引存储在一个数组中,该数组是SelectedPtsB。当用户点击此视图上的按钮时,控制器操作接收选定的PTSIDSB,但TSBNumber的值是否与存储在SelectedTSB数组中的值相同,或者ServiceEntry是否包含要存储在SelectedTSB中的ID属性。SelectedTSB应按原样发送值,例如,在中有五行,这个名为TSBNumber的列有值121、asdas、q23112312131-因此这些值将显示在下拉列表中,公共字符串[]selectedtsb{get;set;}是字符串数组,它将所选项目发送回服务器查询必须有一个select子句,它抛出了一个错误。Oops-与查询语法和扩展方法语法混淆-请参阅更新
@Html.ListBoxFor(model => model.SelectedTsbs, (SelectList)ViewBag.TsbNumber)