Я все еще изучаю ASP.NET MVC. С веб-формами я бы создал новую папку, назовем ее админ. Там у меня может быть много страниц для create_product, edit_product и т. Д. Таким образом, URL-адрес может выглядеть как http: // somesite .com / admin / create_product.aspx.

Но с MVC все немного иначе. Я пытаюсь понять, как лучше всего это сделать.

Будет ли правильно делать http://somesite.com/admin/product/create? Или это должно быть просто http://somesite.com/product/create? Если я сделаю это первым способом, все ли я помещу в контроллер «админ» или его нужно разделить на контроллер «продукта»?

Я знаю, что это, вероятно, субъективный или личный выбор, но я хотел бы получить совет.

Спасибо.

7
vincentw56 11 Сен 2009 в 20:53

2 ответа

Для административных работ просто отметьте атрибутом [Authorize]. Чтобы гарантировать, что только администраторы могут использовать его, сделайте что-нибудь вроде [Authorize(Roles = "Admin")]. Ознакомьтесь с этим вопросом

Кроме того, я думаю, что / product / create является наиболее распространенным :)

1
Community 23 Май 2017 в 14:45
Спасибо, я не до авторизации пользователей. Я просто хочу посмотреть, как мне формировать свои URL-адреса. Или какой-нибудь хороший совет по этому поводу. :)
 – 
vincentw56
11 Сен 2009 в 21:04

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

Что касается глубины URL-адреса, я бы не стал беспокоиться о глубине, я был бы больше обеспокоен тем, чтобы маршрут имел логический смысл, например:

Domain.com/admin/products/edit/1

Domain.com/admin/groups/edit/1

Domain.com/products/view/1

Domain.com/groups/view/1

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

Самый простой способ проверить - попросить кого-нибудь прочитать ваш URL-адрес и спросить, что они ожидают увидеть.

Надеюсь это поможет.

ОН и последнее: для маршрутов на стороне клиента мы часто используем «слага», а не идентификаторы, чтобы он был более читабельным. Поэтому, когда кто-то создает продукт, мы объединяем имя, чтобы его можно было использовать в маршруте, например:

Domain.com/products/view/big-red-bucket

Скорее, чем

Domain.com/products/view/1

1
Richard 11 Сен 2009 в 21:03