Вопрос

Я думаю, что название в значительной степени подводит итог:

В чем разница между RouteLink() и ActionLink() в ASP.NET MVC?

то естькогда ты используешь Html.RouteLink() и когда ты используешь Html.ActionLink() на ваш взгляд?

Это было полезно?

Решение

Действие и Маршруты не обязательно должны иметь соотношение 1:1.

ActionLink сгенерирует URL-адрес для перехода к действию, используя первый соответствующий маршрут по имени действия.

RouteLink сгенерирует URL-адрес для определенного маршрута, определяемого либо именем, либо значениями маршрута.

Другие советы

На самом деле выходные данные обоих методов одинаковы, но генерируются несколько разными способами:

Html.ActionLink() упрощает быстрое создание ActionLinks и дает вам базовый контроль над тем, что отображается.Если у вас не слишком много маршрутов или вам не нужно предоставлять слишком много или слишком конкретную информацию, это вполне подойдет.

А Html.RouteLink() Метод принимает немного другие аргументы и, таким образом, дает вам немного более детальный контроль над тем, как все обрабатывается.Я склонен использовать этот метод, когда мой сценарий немного сложнее или когда у меня есть более подробная структура маршрута.
Одним из примеров является недавний проект, в котором я (в целях гибкости) предпочитал иметь несколько разных маршрутов, которые были довольно простыми, чем один сложный, который позволял бы передавать много информации.Таким образом, у меня получилось четыре или пять маршрутов для одного и того же контроллера, и все с указанным действием по умолчанию.Я в основном использовал RouteLink версию, потому что когда я указал имя маршрута, параметры по умолчанию были введены автоматически.

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

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

RouteLink принимает имя маршрута, поэтому, если имена ваших маршрутов надежны и достаточно уникальны, они будут такими же, даже если имя используемого действия изменится.Вместо этого ActionLink ссылается на конкретное действие конкретного контроллера.Я использую оба варианта в своих представлениях, в зависимости от того, какая ссылка мне нужна!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top