2016-03-29 3 views
0

Hier mein Viewmodel ist hier für AuswahlmenüsWie Dropdown zu füllen und abhängig Dropdown-Listen

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

ist Controller

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

I Städte versuchen von der Provinz zur Liste ausgewählte Elemente Wie kann ich Dropdown-Menüs in Ansicht füllen ?

+0

Welche Probleme haben Sie? Sie haben nicht einmal die Ansicht oder die Skripte/Ajax, die diese Methoden aufrufen. –

+0

gibt es nichts nennt diese Methoden. So habe ich nur Viewmodel erstellt und weiß nicht, wie Dropdown @ StepenMuecke machen – John

+0

Studieren Sie den Code in [dieser DotNetFiddle] (https://dotnetfiddle.net/1bPZym) –

Antwort

0

Möglicherweise haben Sie mehr Glück mit SelectListItem.

In Ihrem Ansichtsmodell erstellen eine Eigenschaft vom Typ List<SelectListItem>

Bevor Sie die Ansicht aufrufen, die Eigenschaft füllen.

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

Dann auf Ihren Blick nennen Sie es so.

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

Dies wird Ihnen mit allen Werten in queryable ein Dropdown-Menü geben, die in ProvinceId auf Postbacks gespeichert sind.

Verwandte Themen