2012-04-05 2 views
0

Это мой VMне может получить MVC3 DDL SelectedValue работать

public class CountriesViewModel 
    { 
     public string CurrentCountry { get; set; } 
     public IEnumerable<Country> Countries { get; set; } 
    } 

С моим контроллером

public class FiltersController : Controller 
    { 
     public ActionResult _ShipToCountry(IEnumerable<Country> countries, 
              string currentCountry = "AE") 
     { 
      var viewModel = new CountriesViewModel 
      { 
       Countries = countries.OrderBy(x => x.Name), 
       CurrentCountry = currentCountry 
      }; 

      return PartialView(viewModel); 
     } 
    } 

И, наконец, Вид

@Html.DropDownListFor(x => x.Countries, 
         new SelectList(Model.Countries.ToList(), 
            "Code", "Name", Model.CurrentCountry)) 

Где Model.CurrentCountry является Код.

DDL визуализируется правильно

... 
<option value="UA">Ukraine</option> 
<option value="AE">United Arab Emirates</option> 
<option value="UK">United Kingdom</option> 
.... 

Но ни одна страна не получает выбран, что мне не хватает?

+1

@kooshka ... выглядит прав. Вы уверены, что «AE» находится в списке «Код» для стран. – MikeTWebb

+0

«AE» - это по умолчанию оно указано в списке. Но любой другой код страны, который передается, и он передается, я могу видеть его при отладке, по-прежнему не выбирает DDL – kooshka

ответ

1

Вы должны установить CurrentCountry опору для выражения, если не также вы не можете получить выбранную страну на подчиненной формы.

@Html.DropDownListFor(x => x.CurrentCountry, 
         new SelectList(Model.Countries.ToList(), "Code", "Name")) 
+0

. Вы правы, спасибо! – kooshka

0

Это работало ...

Вместо

@Html.DropDownListFor(x => x.Countries, 
         new SelectList(Model.Countries.ToList(), 
            "Code", "Name", Model.CurrentCountry)) 

Используется

@Html.DropDownList(Model.CurrentCountry, 
        new SelectList(Model.Countries.ToList(), 
            "Code", "Name", Model.CurrentCountry)) 
Смежные вопросы