MVC3 - знакомство с DropDownList - PullRequest
       2

MVC3 - знакомство с DropDownList

0 голосов
/ 03 августа 2011

Я новичок в MVC, так что терпите меня ...

Моя новая форма \ view работает (Создание и добавление клиента) Но теперь я хочу, чтобы пользователь указалСтрана, в которой находится новый клиент из выпадающего списка.Но я уверен, как мне это сделать?

ViewModel

public class ClientNew
{
    public string Company { get; set; }
    public string Address { get; set; }
    //New
    public IEnumerable<CountryList> Country{ get; set; }
}

public class CountryList
{
    public string Id { get; set; }
    public string Name { get; set; }
}

Контроллер (Это где может быть неправильно, и это лучший способ сделать это?)

public ActionResult New()
{
    var cl= new List<CountryList>();
    cl.Add(new CountryList(){Id = "abcd",Name = "UK"});
    cl.Add(new CountryList() { Id = "abce", Name = "USA" });
    var model = new ViewModels.ClientNew();
    model.Country= cl;
    return View("New", model);
}

Просмотр (не уверен, как это сделать)

Html.DropDownList("Id" ??????)

Ответы [ 3 ]

1 голос
/ 03 августа 2011

По вашему мнению, вы установите свой раскрывающийся список на Id свойства. Это будет текущее значение, выбранное в раскрывающемся списке при отправке в форму. Данные, которые будут использоваться для раскрывающегося списка, представляют собой список выбора, который называется Странами, существующими в вашей модели.

@Html.DropDownListFor(m => m.Id, Model.Countries)

Ваша модель представления будет иметь ваши свойства Id, Name и Country, а также все остальное, что вам нужно.

public class ClientNewViewModel {
    public string Id { get; set; }
    public string Name { get; set; }

    public SelectList Countries { get; set; }
}

В вашем контроллере вам нужно передать модель на просмотр. Вам нужно будет заполнить список стран выбора. Имейте в виду, что вам нужно будет заполнить это значение, когда вы выполняете POST и также не пройдете проверку.

public ActionResult New()
{
     var model = new ClientNewViewModel();

     model.Countries = new SelectList(service.GetCountries(),
         "Id", "Name"); // set up what properties are used for id/name of dropdown

     return View(model);
}

[HttpPost]
public ActionResult New(ClientNewViewModel model)
{
    if( !ModelState.IsValid )
    {
        model.Countries = new SelectList(service.GetCountries(),
            "Id", "Name");

        return View(model);
    }

    // redirect on success
    return RedirectToAction("Index");
}
0 голосов
/ 04 августа 2011

Есть хороший пост в блоге о том, как это сделать, -> http://277hz.co.uk/Blog/Show/10/drop-down-lists-in-mvc--asp-net

0 голосов
/ 03 августа 2011
Html.DropDownList("Id", 
                  Country.Select(x => new SelectListItem 
                                          { 
                                              Text = x.Name, 
                                              Value = x.Id 
                                          }));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...