Список объектов поля со списком - PullRequest
1 голос
/ 22 августа 2011

У меня есть форма, в которой одно поле должно быть набором объектов (0 или более) из другой таблицы с использованием раскрывающегося списка combox / множественный выбор. Каков наилучший метод для этого? например:

public class Person{
    public int PersonId { get; set; }
    public string PersonName  { get; set; }

    public virtual ICollection<Address> Addresses { get; set; }
    ///or
    public IList<Address> Addresses { get; set; }
    ///or
    public IEnumerable<Addresses > Addresses { get; set; }
}

спасибо

1 Ответ

2 голосов
/ 23 августа 2011

Один из способов сделать это - заполнить список адресов в контроллере и использовать помощник Html.DropDownList для создания раскрывающегося списка.

Например:

public ActionResult Index()
{
   var addressList = <YourAddressListHere>;
   ViewData["Addresses"] = new SelectList(addressList, "<ValueProperty>", "<NameProperty>");
   return View();
}

И вваш взгляд (синтаксис Razor):

@Html.DropDownList("AddressDropDown", (ViewData["Addresses"] as SelectList))

Также есть помощники Html.ListBoxFor и Html.ListBox, если вы хотите сделать множественный выбор.Применяется тот же базовый подход.


(РЕДАКТИРОВАТЬ) Извините за мое недопонимание.

Чтобы получить список адресов, которые вы выбрали, вы можете добавить имя элемента управления в качестве параметра в вас "POST "обработчик и извлеките их во время функции сохранения / редактирования / вставки.

[HttpPost]
        public ActionResult Edit(int[] addressList, <your parameters>)
.....

с кодом UI как:

<div class="editor-field">    
    @Html.ListBox("addressList") 
</div>

Вы можете делать все, что вам нужно со списком адресовИдентификаторы, которые были выбраны.Я знаю, что, скорее всего, есть лучший способ сделать это с MVC.Если кто-то смотрит на это и знает лучший способ, пожалуйста, прокомментируйте, потому что я хотел бы знать себя.Я знаю, что вы можете создать некоторые пользовательские классы связующих, которые, я думаю, будут делать все эти вещи автоматически, но я еще не дошел до этого с MVC.Я сам новичок в MVC.

В любом случае, надеюсь, это немного поможет.


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...