2012-06-27 2 views
0

Я только что начал с моего проекта с использованием MVC и Razor. Теперь я столкнулся с проблемой, когда дело касается привязки данных, поступающих из базы данных, к выпадающему списку. Пожалуйста, обратитесь на мои коды ниже:Связывание данных с DropDownList MVC Razor

Специализация Модель:

public class SpecializationModel 
{ 
    [Display(Name = "SpecializationID")] 
    public string SpecializationID { get; set; } 

    [Display(Name = "SpecializationDescription")] 
    public string SpecializationDescription { get; set; } 

    public IEnumerable<SelectListItem> Items { get; set; } 
    public int SelectedSpecializationID { get; set; } 
} 

Контроллер:

public ActionResult Physicians() 
{ 
    SpecializationManager spec = new SpecializationManager(); 
    List<Specialization> SpecializationList = spec.GetAllSpecialization(); 

    var obj = new SpecializationModel(); 

    obj.Items = new[] 
    { 
     foreach(var x in SpecializationList) 
     { 
      new SelectListItem { Value = x.SpecializationID.ToString(), Text = x.SpecializationDescription }; 
     } 
    }; 

    return View(obj); 
} 

У меня есть этот менеджер, который содержит мой запрос LINQ для извлечения данных из базы данных. У меня проблемы с контроллером. В чем ошибка указывает на синтаксис foreach: Invalid expression term foreach

Может ли кто-нибудь указать мне в правильном направлении? Большое спасибо!

EDIT:

У меня этот код теперь без ошибок на Еогеасп части (благодаря сообщению, ниже которого я объединил с тем, что я выше). Однако я не могу заставить последнюю работу работать. Он производит ошибку о неявном литье:

var items = new List<SelectListItem>(); 
foreach (var x in SpecializationList) 
{ 
    items.Add(new SelectListItem { Value = x.SpecializationID.ToString(), Text = x.SpecializationDescription }); 
} 

obj.Items = items.ToList(); 

Пожалуйста, помогите мне. Спасибо :)

ответ

1

yopu не может поставить Еогеасп в конструкторе, попробуйте:

var items = new List<SelectListItem >(); 
foreach(var x in SpecializationList) 
{ 
      items.add(new SelectListItem { Value = x.SpecializationID.ToString(), Text = x.SpecializationDescription }); 
} 

obj.Items = items; 

Отредактировано

+0

Привет! Спасибо за ответ. Но ваш код, похоже, имеет ошибки. В части 'items.Add (x)' компилятор говорит, что у него есть некоторые недопустимые аргументы. Кроме того, 'items.ToArray()' создает ошибку о неявном преобразовании SelectListItem в IEnumerable . – Smiley

+0

Попробуйте сделать это сейчас – Liam

+0

Если это не сработает, вы должны сообщить мне, что obj.Items! – Liam

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