Выберите значение в DropDownList - PullRequest
0 голосов
/ 15 октября 2011

У меня есть следующее утверждение:

<%: Html.DropDownList("dropCity", new[] { new SelectlistItem { Text = "City1", Value = 1}, new SelectlistItem { Text = "City2", Value = 2}, new SelectlistItem { Text = "City3", Value = 3}})%> 

Предположим, что мой контроллер отправил на страницу aspx, которая содержит этот выпадающий список переменную со значением "3", как я могу установить этот выпадающий список, чтобы выбрать этот параметр при загрузке страницы?

Спасибо за помощь!

Ответы [ 4 ]

1 голос
/ 15 октября 2011

Использовать модели просмотра:

public class MyViewModel
{
    public string SelectedCityId { get; set; }
    public IEnumerable<SelectListItem> Cities { get; set; }
}

тогда ваш контроллер заполняет эту модель представления:

public ActionResult Index()
{
    var model = new MyViewModel
    {
        // preselect the second city
        SelectedCityId = "2",
        Cities = new[]
        {
            new SelectListItem { Value = "1", Text = "City1" },
            new SelectListItem { Value = "2", Text = "City2" },
            new SelectListItem { Value = "3", Text = "City3" },
        }
    };
    return View(model);
}

и, наконец, в вашем строго типизированном виде:

<%= Html.DropDownListFor(x => x.SelectedCityId, Model.Cities) %>
1 голос
/ 15 октября 2011

Если ваш контроллер передает '3', почему бы не сделать так, чтобы он вместо этого передавал весь список SelectListItem?

Тогда вы бы сделали что-то вроде этого в контроллере:

public ActionResult MyController(MyModel model) 
{
    // Build SelectListItem list
    ViewBag.CitiesList = new List<SelectListItem>() 
    {
        new SelectlistItem { Text = "City1", Value = 1, Selected = true}, 
        new SelectlistItem { Text = "City2", Value = 2}, 
        new SelectlistItem { Text = "City3", Value = 3}
    }

    View(model);
}

Иполучил это таким образом в представлении:

<%: Html.DropDownList("dropCity", ViewBag.CitiesList as IEnumerable<SelectListItem>) %>

Таким образом, вся логика выбора правильного города находится в контроллере, как и должно быть с самого начала.

0 голосов
/ 15 октября 2011
<%: Html.DropDownList("dropCity", new[] { 
      new SelectlistItem { Text = "City1", Value = 1, Selected = true}, 
      new SelectlistItem { Text = "City2", Value = 2}, 
      new SelectlistItem { Text = "City3", Value = 3}})%> 
0 голосов
/ 15 октября 2011

Когда вы создаете selectlistitem, просто выполните:

new SelectlistItem { Text = "City1", Value = 1, Selected=true}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...