ASP.NET MVC: ActionLink против голого URL

В ASP.NET MVC я вижу, что у меня есть удобные HTML-помощники, которые я могу использовать для создания полей формы и любого количества других мелочей. Но тогда есть ActionLinks.

Зачем использовать ActionLink вместо того, чтобы просто писать собственный darn url в теге привязки HTML?

Другими словами, почему я должен использовать

<%: Html.ActionLink("Back to List", "QuantityTypes") %>

вместо простого использования HTML-кода и написания:

<a href="/internal/quantitytypes">Back to List</a>

Конечно, я должен получить что-то дополнительное с ActionLink. Я просто пропустил это, не так ли?

Ответ 1

Ссылка на действие создаст вам правильный URL-адрес на основе контроллера, действия, областей, параметров и т.д. Он генерирует URL-адрес на основе правил сопоставления URL-адресов, определенных в вашей системе маршрутизации MVC. Он также преобразует params в правильный URL-адрес, в зависимости от того, должен ли он быть включен в URL-адрес напрямую или с помощью параметра querystring.

Да, вы могли бы сделать это самостоятельно и просто набирать все, но он создает URL-адрес для вас и гарантирует, что URL-адрес, который генерируется, является правильным. Это вспомогательная функция... она помогает вам создавать допустимые ссылки:)

Вы должны прочитать сообщение Скотта Гатри и обратить особое внимание на раздел " Построение исходящих URL-адресов из системы маршрутизации". Это дает причины и объясняет другие помощники, которые используют систему маршрутизации.

Ответ 2

Вы получаете централизованное управление URL-адресами. Поэтому в следующий раз, когда вам нужно изменить один для целей SEO, вам не нужно искать все места в приложении, просто переключите его в Global.asax.

Ответ 3

Что делать, если вы хотите изменить имя контроллера с внутреннего на внешний. Что сейчас произойдет? Вам понадобится изменить ссылку href вручную. ActionLink выполнит автоматическую маршрутизацию. Вам не нужно возиться с URL-адресами.

Ответ 4

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