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



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



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



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

699   4  

4 ответов:

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

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

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

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

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

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

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

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

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

Comments

    Ничего не найдено.