Настройка URL отображается в адресной строке с маршрутизацией - PullRequest
2 голосов
/ 13 ноября 2011

Я хотел бы оптимизировать мой URL, отображаемый в веб-браузерах. Я знаю, что Routing идеально подходит для этого, но я не знаю, возможно ли это так, как я хочу. У меня есть список проектов в списке. У каждого проекта есть идентификатор, имя и категория. При переходе на страницу с подробным описанием продукта должен отображаться URL-адрес «/ category / name». Я знаю, что могу передать идентификатор, категорию и имя в ActionLink и настроить маршрутизацию в Global.asax. Я уже делаю это, но у меня все еще есть идентификатор, который связан с остальной частью URL. Это безобразно.

Вот пример:

ActionLink на мой взгляд:

@Html.ActionLink(@p.Name, "Detail", new { projectID = @p.ProjectID, category = @p.Category, name = @p.Name })

Глобальный.asax:

routes.MapRoute(null,
    "{category}/{name}",       
    new { controller = "Project", action = "Detail" }
);

Полученный URL:

enter image description here

Как видите, идентификатор проекта всегда добавляется в конец URL-адреса. Как я могу избежать такого поведения?

Спасибо.

1 Ответ

2 голосов
/ 13 ноября 2011
routes.MapRoute(null,
"{category}/{name}/{projectID}",       
new { controller = "Project", action = "Detail", projectID = UrlParameter.Optional }

);

даст вам

/INDUSTRIE/Mailing/16

это то, что вы хотите?

...