我目前在解决这个问题时遇到了一些麻烦。我有一个不需要任何参数的方法,现在我需要添加一个参数,但我不想在调用该方法的所有不同位置添加参数。这是我目前的方法:
private IEnumerable<SearchItems> GetItems(ItemDescriptionFormViewModel viewModel = null)
{
IOrderedQueryable<ItemDescription> items= _itemDescriptionRepository.FindAll().OrderBy(
c => c.Sort == null).ThenBy(
c => c.Sort).ThenBy(c => c.Description);
if(items.Count()==0)
ModelState.AddModelError("", string.Format("No active {0} entered.", Kids.Resources.Entities.ItemDescription.EntityNamePlural));
return
_itemDescriptionRepository.FindAll().OrderBy(c => c.Description).Where(a=>a.IsActive == true || viewModel == null || a.ItemDescriptionId == viewModel.ItemDescriptionId).Select(
c => new SearchItems {Text = c.Description, Value = c.ItemDescriptionId.ToString()});
}
我尝试将 null 作为参数传递给正在调用此方法的其他地方,但出现错误。什么是超载这个问题的方法?
目的:添加 viewModel 的目的是因为我有一个下拉列表,其中包含可供选择的活动项目。一旦用户选择了一个活动项目,然后由于某种原因该项目变得不活动,用户就去编辑他们的选择。在下拉列表中应该有活动项目的列表以及它们之前选择的现在不活动的项目。我正在使用 ViewModel 来检查先前选择的项目的 id。
谢谢