2016-03-29 3 views
0

Вот мой ViewModel Для DropdownsКак заполнять выпадающие зависимые выпадающие

[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; } 

Вот контроллер

[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); 
    } 

Я пытаюсь перечислить Города по провинции выбранного пункта Как заполнить выпадающие в поле зрения ?

+0

Какие у вас проблемы? Вы даже не показывали представление или скрипты/ajax, которые вызывают эти методы. –

+0

ничего такого не вызывает. Так что я создал только viewmodel и не знаю, как сделать dropdown @StephenMuecke – John

+0

Изучите код в [this DotNetFiddle] (https://dotnetfiddle.net/1bPZym) –

ответ

0

Возможно, вам повезло с SelectListItem.

В вашей ViewModel создать свойство типа List<SelectListItem>

Перед тем, как вызвать ваш взгляд, заполнить свойство.

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 }}; 

Тогда на ваш взгляд вы называете это так.

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

Это даст вам выпадающее меню со всеми значениями в queryable, которые хранятся в ProvinceId на постбэка.

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