2015-04-06 6 views
-1

Я хочу заполнить второй раскрывающийся список GetCity() со значениями из базы данных, которые зависят от того, что было выбрано в первом списке, или выпадающего списка GetCounty(). Где бы я добавил предложение where?Раскрывающийся список с населением с предложением where

public class NewsModel : BaseModel 
{ 
    [Required] 
    public int? FKCountyId { get; set; } 
    public string County { get; set; } 
    [Required] 
    public int? FKCityId { get; set; } 
    public string City { get; set; } 


    public List<SelectListItem> GetCounty() 
    { 
     List<SelectListItem> lst = new List<SelectListItem>(); 
     lst.Add(new SelectListItem() { Text = "Please select County", Value = "" }); 
     foreach (var item in LambertonContext.NewsCounties) 
     { 
      lst.Add(new SelectListItem() { Text = item.County, Value = item.PKCountyId.ToString() }); 
     } 
     return lst; 
    } 

    public List<SelectListItem> GetCity() 
    { 
     List<SelectListItem> lst = new List<SelectListItem>(); 
     lst.Add(new SelectListItem() { Text = "Please select City", Value = "" }); 
     foreach (var item in LambertonContext.NewsCities) 
     { 
      lst.Add(new SelectListItem() { Text = item.City, Value = item.PKCityId.ToString() }); 
     } 
     return lst; 
     } 
} 


<div class="panel-body"> 
       <div class="form-group"> 
        @Html.LabelFor(m => m.FKCountyId, new { @class = "col-sm-2 col-sm-2 control-label" }) 
        <div class="col-sm-10"> 
         @Html.DropDownListFor(m => m.FKCountyId, Model.GetCounty()) 
        </div> 
       </div> 
       <div class="form-group"> 
        @Html.LabelFor(m => m.FKCityId, new { @class = "col-sm-2 col-sm-2 control-label" }) 
        <div class="col-sm-10"> 
         @Html.DropDownListFor(m => m.FKCityId, Model.GetCity()) 
        </div> 
       </div> 

ответ

0

Вам нужно будет пройти CountyId к вашему GetCity() и отфильтровать список; попробовать это:

public List<SelectListItem> GetCity(string CountyId) 
    { 
     List<SelectListItem> lst = new List<SelectListItem>(); 
     lst.Add(new SelectListItem() { Text = "Please select City", Value = "" }); 
     foreach (var item in LambertonContext.NewsCities.Where(FKCountyId == GetCounty().Value)) 
     { 
      lst.Add(new SelectListItem() { Text = item.City, Value = item.PKCityId.ToString() }); 
     } 
     return lst; 
     } 
+0

Alundra, мне придется обратной передачи ниспадающее меню GetCounty, чтобы получить значение, выбранное в выпадающем списке? – user2224493

+1

вам не нужно отправлять назад, у вас уже есть отношения FK. Вам понадобится вызов AJAX для заполнения населенного пункта dropdown linst –

+0

OK, но LambertonContext.NewsCities.Where (FKCountyId == GetCounty(). Значение) дает мне ошибку 'System.Collections.Generic.List 'не содержит определения для «Значение» и не используется метод расширения «Значение», принимающий первый аргумент типа «System.Collections.Generic.List » (вам не хватает директивы использования или ссылки на сборку?) – user2224493

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