2015-01-15 6 views
0

Я немного опоздал в игру MVC, и, откровенно говоря, там так много информации, почти невозможно использовать «правильные» ключевые слова, чтобы даже приблизиться к ответу.Совместное использование методов Async между контроллерами MVC

У меня есть функция, которая получает codes из базы данных и отображает их в автозаполнении. Я хочу поделиться этим методом GetCodes между контроллерами, и эти codes используются в других формах.

Что является лучшим? MVC Практика для этого?

Лучше ли сделать базовый класс этой функцией или лучше создать контроллер веб-API для совместного использования этих типов методов?

[Изменить] Чтобы уточнить, codes Я предоставляю автозаполнение, как список городов в большом штате или провинции. Это статический список, который обновляется только правительством, когда изменения происходят на федеральном уровне.

Я просто не хочу вырезать/вставлять функцию, которая выполняет поиск, я бы предпочел написать что-то, что можно использовать повторно. Прямо сейчас, функция GetCodes живет на одном контроллере, и я вызываю этот метод действия контроллера из других частей сайта. Мне это не нравится, и я ищу несколько советов о том, как использовать другие части ASP.NET для достижения этого более надежным способом.

Спасибо

ответ

0

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

0

Каждый раз, когда вы говорите «как лучше всего ...», ответ всегда «зависит от множества факторов».

Мы не очень много знаем о вашем дизайне, требованиях, реализации или других деталях. Однако есть некоторые вещи, о которых следует помнить.

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

Похоже, что ваши данные просто являются частью вашей модели, поэтому вы можете использовать любой из стандартных шаблонов для доступа к данным данных модели. Любой учебник, такой как MVC Music store или Nerd Dinner, покажет вам, как это сделать.

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