我有multiselectlist
一个用户可以选择 some 或 none的地方inputvoltages
。当用户选择 no时,InputVoltages
我的查询会null exception
在我调用.Tolist()
. 为什么我不只是返回一个空列表?
我正在使用 MVC5 C# 和实体框架 6。
存储库
public IQueryable<InputVoltage> All
{
get { return context.InputVoltages; }
}
控制器
var newInputVoltages = unitOfWorkPds.InputVoltageRepository
.All.Where(m => engineeringPdsEditViewModel.SelectedInputVoltages
.Contains(m.Id))
.ToList<InputVoltage>();
All
确实返回一个列表,但SelectedInputVoltages
在未选择任何内容时为空。我想知道这是否是问题所在。
当我使用此查询并为我的索引页面添加 where 语句时,我在调用时没有收到 null 错误ToList
IQueryable<EngineeringPdsIndexViewModel> query =
(from a in context.EngineeringPds
select new EngineeringPdsIndexViewModel
{
Id = a.Id,
Name = a.Name,
Status = a.Status,
AnnualQuantities = a.AnnualQuantities,
ToMarketDate = a.ToMarketDate,
SubmittedBy = a.SubmittedBy,
TargetPrice = a.TargetPrice
});
所以我相信布赖恩对什么是错误的想法是正确的,但这是扩展的问题我有一个多选框,它通过以下方式填充在 get 操作方法中
IList<InputVoltage> inputVoltagesList = unitOfWorkPds.InputVoltageRepository.All.ToList();
然后
pdsEditViewModel.InputVoltageList = inputVoltagesList.Select(m => new SelectListItem { Text = m.Name, Value = m.Id.ToString() }); in my view I hav@Html.ListBoxFor(m => m.SelectedApprovals, Model.ApprovalList)
但是当用户没有选择时, selectedInputvoltages 进入我的后控制器操作为 null 我如何让它作为一个空列表进入?
更新
对于遇到相同问题的任何人,Brians 的第一个答案解释了该问题。可以在此处找到提交带有空列表的 ListBox 的解决方法