MVC - Какие контроллеры и какие представления? - PullRequest
0 голосов
/ 09 августа 2011

У меня проблемы с отображением моего сайта с использованием MVC.

Какие контроллеры и представления для следующей иерархии страниц?

Индекс (Главная)

-> Игроки

---> Каталог

-----> Нападающие

-----> Защита

---> Профиль

-----> Новости

-----> Статистика

-> Команды

---> Каталог

------> Отдел

---> Профиль команды

-----> Новости

-----> Статистика

Используя в качестве примера / Players / Profile / Stats, «Profile» является контроллером, а «Stats» - представлением? Что такое «игроки»? По умолчанию (индексная) страница для «Игроки» - «Каталог» «Игроки» тоже будут контролером?

Есть ли лучший способ структурировать этот сайт?

Спасибо за ваши ответы. Существующим примером будет http://sports.yahoo.com/nhl/players/4351 Это страница профиля. Если вы нажмете на другие вкладки (например, Split Stats), появится другое представление. Вот как я хочу это структурировать. В URL yahoo кажется, что «игроки» - это представление, а идентификатор - это параметр представления. Однако, когда вы нажимаете на другие вкладки, к URL, кажется, добавляется другое представление (например, http://sports.yahoo.com/nhl/players/4351/splits). В этом случае это «игроки» и «разделяет» представление тоже?

Ответы [ 3 ]

0 голосов
/ 09 августа 2011

Вы можете структурировать свое приложение так, как вам нравится.Это выглядит разумно, хотя.

В вашем примере "/ Players / Profile / Stats" игроки будут областью в вашем приложении MVC.Profile будет вашим ProfileController.cs, а Stats будет действием в этом контроллере (который имеет соответствующее представление с тем же именем: Stats.aspx).

0 голосов
/ 09 августа 2011

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

PlayerController
TeamController

PlayerController, вероятно, будет выполнять следующие действия:

GetAll()
GetForwards()
GetDefense()
GetProfile(id)
GetNews(id)
GetStats(id)

TeamController, вероятно, будет иметь:

GetAll()
GetByDivision(id)
GetProfile(id)
GetNews(id)
GetStats(id)

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

0 голосов
/ 09 августа 2011

A Controller - это созданный класс, задачей которого является получение данных из get / post и определение того, какой View должен быть возвращен. Это делается с помощью методов контроллера под названием Actions

пример ...

MyController -> Имеет действие -> Домой -> Возвращает домой действие -> Домашний вид

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