Коллекции MVC3 во ViewModel или заполненные службой Ajax - PullRequest
2 голосов
/ 20 сентября 2011

Я разрабатываю приложение в MVC3, у которого есть выпадающие списки на нескольких страницах, чтобы заполнить выборки для определенных объектов.Мой вопрос заключается в том, имеет ли смысл содержать коллекции для раскрывающегося списка в моей ViewModel или вызывать службу для заполнения раскрывающихся списков.

Например, имеет ли смысл иметь следующее:

public class MyViewModel
{
    public int SelectedFooId { get; set; }
    public IEnumerable<Foo> Foos { get; set; }
}

@Html.DropDownListFor(model => model.SelectedFooId, new SelectList(Model.Foos, "Id", "Name", "-- Select Foo --"))

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

1 Ответ

4 голосов
/ 20 сентября 2011

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

Использование AJAX для заполнения значений раскрывающегося списка может быть полезно при выполнении некоторой динамической привязки.Например, вы можете сделать это с помощью каскадных выпадающих списков, где выбор первого ddl будет обусловливать значения второго.Вот пример того, как это можно реализовать.

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