2010-08-12 2 views
10

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

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

Другими словами, почему бы использовать

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

вместо того, чтобы просто использовать обычный ола»HTML и писать:

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

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

ответ

9

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

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

Вы должны прочитать Scott Guthrie's post и обратить особое внимание на раздел «Constructing Outgoing URLs from the Routing System». Это дает причины и объясняет другие помощники, которые используют систему маршрутизации.

+0

+1 для статьи ScottGu - хорошее чтение. –

+0

Для маршрутизации по умолчанию/{controller}/{action} Что он покупает? – LarryBud

0

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

+2

Интересно. У вас есть пример того, как это будет выглядеть? –

0

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

0

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

Смежные вопросы