我目前在解决这个问题时遇到了一些麻烦。我有一个方法,不需要任何参数,现在我需要添加一个参数,但我不想在调用该方法的所有不同位置添加参数。这是我目前的方法:传递null参数
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。
感谢
你会得到什么错误? – nemesv 2012-04-26 13:40:16
@Amina:null是viewModel参数的有效值吗? – Dennis 2012-04-26 13:41:26
@丹尼斯我有这样的参数:ItemDescriptionFormViewModel viewModel = null。 – Masriyah 2012-04-26 13:47:14