2012-05-09 2 views
0

У меня есть следующие в моей Вид:Создание выпадающего меню со словарем Пункт

@Html.DropDownListFor(model => model.Search, new SelectList(Model.SearchOptions)) 

В моей Поиск объекта У меня есть:

public List<string> Search { get; set; } 

    public Dictionary<string, string> SearchOptions { get; set; } 

    public SearchModel GetDropDownOptions(SearchModel model) 
    { 
     model.SearchOptions = HelperModel.GetRefValues(db, Constants.SEARCH, false); 

     return model; 
    } 

С этим вызовом:

public static Dictionary<String, String> GetRefValues(DBEntities db, string refType, bool addEmpty) 
    { 

     Dictionary<String, String> res = (from c in db.References 
              where c.Type == refType 
              select c).ToDictionary(c => c.Key.ToString(), 
                   c => c.Value.ToString()); 

     if (addEmpty) 
      res.Add("", ""); 

     return res; 
    } 

Я однако получаю сообщение об ошибке: «Ссылка на объект не установлена ​​в экземпляр объекта».

Предложения оценены.

Спасибо.

+0

вы инициализируете db (DbEntities)? – Habib

ответ

2

Вы должны проверить параметры всех общедоступных методов. Так ваш метод:

GetRefValues(DBEntities db, string refType, bool addEmpty) 

должны включать проверку, чтобы увидеть, если db является недействительным и если refType равна нулю. Если вы это сделаете, вы сможете увидеть, какая из этих двух является нулевой, а затем вы можете исправить свой код соответствующим образом, проверив назад, чтобы узнать, где они были инициализированы (или нет, в зависимости от обстоятельств).

Смежные вопросы