Отличие ActionLink от RouteLink в ASP.NET MVC - CodeHelper

Отличие ActionLink от RouteLink в ASP.NET MVC

2

Чем отличаются методы ActionLink и RouteLink в ASP.NET MVC? Когда какой из них следует использовать?

Новые ответы


2

Метод ActionLink принимает имя контроллера и экшена и использует эти параметры для поиска подходящего элемента в таблице роутинга. При этом, подходящей считается первая запись, удовлетворяющая условиям поиска (совпадение контроллера и экшена). Соответственно, если в приложении сложный роутинг, то ActionLink может работать дольше, чем RouteLink. При изменении таблицы роутинга (и даже при изменении порядка записей) может нарушиться работа ранее написанных вызовов ActionLink.

Метод RouteLink использует имя объекта route для поиска в таблице. Соответственно, порядок добавления записей в таблицу роутинга не имеет значения, и изменения/добавление роутов не нарушит работу RouteLink. Также, RouteLink предоставляет бОльшую точность в выборе роута, что особенно полезно когда ActionLink может вызвать некоторую неоднозначность. Например, может быть несколько роутов для одного контроллера и экшена. Тогда ActionLink будет всегда возвращать первый роут, а с помощью RouteLink можно указать конкретный route.


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.