ASP.NET Маршруты MVC с именем пользователя / username /section vs / section/username

#asp.net-mvc #asp.net-mvc-3 #asp.net-mvc-routing

#asp.net-mvc #asp.net-mvc-3 #asp.net-mvc-маршрутизация

Вопрос:

Мне просто интересно, какой стиль маршрутизации большинство людей использовали бы, чтобы иметь имя пользователя с различными разделами, использующими ASP.NET MVC 3?

 /username/profile
/username/settings
/username/details
  

против

 /profile/username
/settings/username
/details/username
  

Если бы был выбран первый стиль, как бы вы обрабатывали маршруты?

Комментарии:

1. смогут ли пользователи получить доступ к страницам профилей других пользователей, настроек и сведений?

2. Идея в том, что я хотел бы, чтобы другие пользователи видели только страницу сведений о других пользователях. Разделы профиля и настроек должны быть видны только вам, а не другим пользователям

Ответ №1:

Учитывая ваш ответ в комментарии, я бы структурировал его как

/Настройки

/Профиль

и

/Имя пользователя

Когда пользователь переходит в /Settings или / Profile, он увидит только свои собственные данные.

когда они перейдут в /Username, они увидят профиль пользователя (будь то их собственный или чей-либо еще).

для выполнения этой работы вашему глобальному asax потребуются настроенные соответствующие маршруты.

Комментарии:

1. Спасибо за предложение, с этой идеей я должен был бы убедиться, что у меня есть зарезервированные слова, поэтому именем пользователя не может быть профиль, настройки и т.д.?

2. да, в этой модели пользователю не будет разрешено иметь имя, совпадающее с именем любого из ваших контроллеров, и он не может установить свое имя пользователя как «Профиль» или «Настройки» … хотя вам не нужно беспокоиться об этом.

Ответ №2:

Как спросил @raklos в комментарии, это действительно зависит от того, как структурировано приложение. Для меня самые левые части URL более важны, чем те, что справа.

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

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

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