我目前在解決這個問題時遇到了一些麻煩。我有一個方法,不需要任何參數,現在我需要添加一個參數,但我不想在調用該方法的所有不同位置添加參數。這是我目前的方法:傳遞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