2015-04-06 48 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

阿蘭多拉,我一定要回發GetCounty下拉菜單來獲取在下拉列表中選擇的價值? – user2224493

+1

你不需要回傳,你已經有FK關係。 您將需要一個AJAX調用來填充城市下拉列表 –

+0

OK但LambertonContext.NewsCities.Where(FKCountyId == GetCounty()。Value)給我錯誤'System.Collections.Generic.List '不包含'Value'的定義,並且不能找到接受類型'System.Collections.Generic.List '的第一個參數的擴展方法'Value' (你是否缺少使用指令或程序集引用?) – user2224493