Привязка выпадающего выбранного значения к свойству модели - PullRequest
1 голос
/ 17 октября 2011

Может быть, я просто не знаю, как Google, но я пытаюсь найти пример, где раскрывающийся элемент управления привязывается к коллекции данных (эта часть работает для меня), а затем я хочу прочитать падение вниз выбор обратно в переменную. Эта переменная может быть свойством в режиме. Привязка выпадающего выбранного значения обратно в переменную, где у меня возникли проблемы. В мире веб-форм это не составило большого труда, но по какой-то причине я не могу заставить его работать с MVC 3. Любые примеры кода или примеры будут высоко оценены.

Ответы [ 2 ]

4 голосов
/ 17 октября 2011

Рекомендуемый способ сделать это в ASP.NET MVC - использовать модель представления. При разработке выпадающего списка вам необходимо 2 свойства в этой модели представления: одно, которое будет использоваться для привязки выбранного значения, и второе, представляющее коллекцию значений и текстов, которые будут использоваться для генерации параметров. Затем вы можете использовать первое свойство, чтобы предварительно выбрать данную опцию.

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

public class MyViewModel
{
    public string SelectedId { get; set; }
    public IEnumerable<SelectListItem> Items { get; set; }
}

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

public ActionResult Index()
{
    var model = new MyViewModel
    {
        // preselect the second item which has value=2
        SelectedId = "2",

        Items = new[]
        {
            new SelectListItem { Value = "1", Text = "item 1" },
            new SelectListItem { Value = "2", Text = "item 2" },
            new SelectListItem { Value = "3", Text = "item 3" },
        }
    };
    return View(model);
}

и в строго типизированном представлении используйте помощник DropDownListFor для создания раскрывающегося списка:

@model MyViewModel
@Html.DropDownListFor(
    x => x.SelectedId, 
    Model.Items,
    "-- Select an Item --"
)
0 голосов
/ 03 апреля 2013

Вы можете связать значения раскрывающегося списка в модели следующим образом:

public virtual SelectList ddlvalue
        {
            get
            {
                List<SelectListItem> list = new List<SelectListItem>();
                list.Add(new SelectListItem() { Text = "Yes", Value = "Y" });
                list.Add(new SelectListItem() { Text = "No", Value = "N" });
                return new SelectList(list, "Value", "Text");
            }
            set { }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...