Создание ссылок в ASP.NET с использованием Html.ActionLink () против атрибутов asp, таких как <a asp-action=""> - PullRequest
0 голосов
/ 05 ноября 2018

В представлениях ASP.NET Razor я видел ссылки, созданные двумя разными способами:

@Html.ActionLink("Download", "Download", new { id = item.Id })

и

<a asp-area="" asp-controller="MyController" asp-action="Download" asp-route-id="@item.Id">Download</a>

Есть ли у одного метода преимущества перед другим? Синтаксис @Html.ActionLink() кажется более компактным, но, возможно, не обеспечивает такого большого контроля над конечным тегом <a/>? Спасибо!

1 Ответ

0 голосов
/ 05 ноября 2018

Первый - это вспомогательный 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")

ИМХО, подход помощника по тегам более удобен для разработчиков и удобочитаем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...