Первый - это вспомогательный HTML-метод, который существует в MVC4 и 5. Второй - помощники тегов, появившиеся в ядре asp.net. Это больше похоже на синтаксис чистого HTML, поэтому даже дизайнеры пользовательского интерфейса, которые не очень знакомы с C #, могут использовать их для создания ссылок.
Помощник тега ссылки может делать все, что может сделать помощник ActionLink
, и даже больше. Например, с помощью помощника тега ссылки вы можете создать разметку HTML следующим образом.
<a asp-action="Search" asp-controller="Home">
<i class="glyphicon glyphicon-search"></i>
</a>
Вы не можете сгенерировать вышеупомянутый вид разметки (разметка других элементов внутри тега привязки с помощью ActionLink
helper.
Имейте в виду, что вы можете использовать вспомогательные методы HTML в основных представлениях asp.net. Но помощники по тегам легче читать с точки зрения HTML.
Сравнить код для рендеринга элемента SELECT в подходе помощника по тегам
<select asp-for="UserId" asp-items="@Model.UserList">
<option>Select one</select>
</select>
против
@Html.DropDownListFor(a=>a.UserId, Model.UserList,"select one")
ИМХО, подход помощника по тегам более удобен для разработчиков и удобочитаем