ASP.Net MVC рекомендации по дизайну и структуре URL - PullRequest
6 голосов
/ 10 декабря 2011

Я хотел бы получить некоторые экспертные предложения по разработке URL для нашего веб-приложения.Это не общедоступный веб-сайт, это веб-приложение на основе интранет-сети, используемое только группой аутентифицированных пользователей.

Вот несколько примеров -

/Claim/12/Manage
FORMAT: controller/{ID}/action

URL, которыйуказывает на мастера "Заявки на вход".Здесь «12» - это ClaimID.Далее он разделен на вкладки для ввода данных.Пример: / Claim / 12 / Print, / Claim / 12 / FileDetails, ...

/Users/List
FORMAT: controller/action

Отображение списка существующих пользователей в Grid.Shud это быть сокращено до "/ Users"?Также у нас есть и другие объекты, такие как «Роли, организации и т. Д.»

/Master/Manage/FileType
FORMAT: controller/action/{argument}

У нас есть страница, которая позволяет пользователю управлять различными данными основной таблицы.Необходимо знать, какая главная таблица выбрана (т.е. отправлена ​​в качестве аргумента).Лучше вместо этого упростить его как "/ Manage / {аргумент}", а затем отобразить этот URL, как указано выше?

  • Разумно ли в MVC скрывать действия по умолчанию, такие как "Claim / 21 / Manage""shud be" Claim / 21 "," / Users / List "shud be" / Users "...
  • Аргументы - они лучше встроены в URL или подходят для добавления в виде строки запроса

Также подойдут любые общие рекомендации или ссылки.

Ссылка: URL-адрес веб-служб - (Раздел: Разработка шаблонов URI) http://msdn.microsoft.com/en-us/library/dd203052.aspx

Ответы [ 2 ]

2 голосов
/ 11 июня 2012

Вы можете использовать регулярные выражения для представления различных имеющихся у вас маршрутов. Например

protected void Application_Start()
{
RouteTable
.Routes
.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL template
new { controller="Mycontroller", action="Myaction", id=UrlParameter.Optional },
new { action = @"\d{2}-\d{2}-\d{4}" }
);
}
0 голосов
/ 30 августа 2012

Ну, я заключаю, что это лучшее (и, возможно, самое подробное) объяснение, которое я могу найти в MSDN - http://msdn.microsoft.com/en-us/library/dd203052.aspx

И этого должно быть достаточно: -)

...