2016-03-29 18 views
0

İşte DROPDOWNSMenüsünü Ve bağımlı dropdowns doldurmak nasıl

İşte
[Required(ErrorMessage = "Gerekli Alan")] 
    [Display(Name = "İl")] 
    [UIHint("DropDownList")] 
    [AdditionalMetadata("DataController", "Register")] 
    [AdditionalMetadata("DataAction", "Province")] 
    public int? ProvinceId { get; set; } 

    [Required(ErrorMessage = "Gerekli Alan")] 
    [Display(Name = "İlçe")] 
    [UIHint("DependentDropDownList")] 
    [AdditionalMetadata("DependsOn", "ProvinceId")] 
    [AdditionalMetadata("DataController", "Register")] 
    [AdditionalMetadata("DataAction", "TownByProvinceId")] 
    public int? TownId { get; set; } 

için benim ViewModel olduğunu ben görünümünde açılır listeler doldurabilir nasıl ilin tarafından seçilen öğeyi Kasabaları listelemek çalışıyorum

[HttpPost] 
    public ActionResult Province() 
    { 

     IQueryable<DropDownListItem> queryable = from city in Db.Provinces 
               orderby city.Name 
               select new DropDownListItem { Text = city.Name, Value = city.Id }; 
     return base.Json(queryable); 
    } 

    [HttpPost] 
    public ActionResult TownByProvinceId(int ProvinceId) 
    { 
     IQueryable<DropDownListItem> queryable = from province in Db.Towns 
               where province.ProvinceId == ProvinceId 
               orderby province.Name 
               select new DropDownListItem { Text = province.Name, Value = province.Id }; 
     return base.Json(queryable); 
    } 

kontrolör

olduğunu ?

+0

Hangi sorunlarınız var? Bu yöntemleri çağıran görünümü veya komut dosyalarını/ajax'ı bile göstermediniz. –

+0

hiçbir şekilde bu yöntemi çağırmaz. Bu yüzden sadece viewmodel yarattım ve nasıl açılır bilmiyorum @StephenMuecke – John

+0

[Bu DotNetFiddle] 'daki kodu inceleyin (https://dotnetfiddle.net/1bPZym) –

cevap

0

SelectListItem ile daha iyi şansınız olabilir. Eğer, görünümünüzü çağrı özelliği doldurmak önce, ViewModel içinde

tip List<SelectListItem>

bir özelliğini oluşturur.

var model = new MyViewModel { queryable = from province in Db.Towns 
             where province.ProvinceId == ProvinceId 
             orderby province.Name 
             select new SelectListItem { Text = province.Name, Value = province.Id, Selected = false }}; 

Ardından bakış açınızı böyle adlandırırsınız.

@Html.DropDownListFor(m => m.ProvinceId, m.queryable) 

Bu size geri gönderme ProvinceId saklanır queryable tüm değerleri ile bir açılır menü verecektir.

İlgili konular