Есть ли разница между HTML.ActionLink
против Url.Action
или они просто два способа сделать то же самое?
Когда я должен предпочесть одно другому?
asp.net-mvc
asp.net-mvc-3
razor
Панкадж Упадхяй
источник
источник
Html.ActionLink
для генерации. Не пытайтесь делать такие микрооптимизации. В результате вы получите некрасивый код в своих представлениях.<a>
). Используйте Url.Action, когда вам нужно сгенерировать только URL (это также может быть использовано в действии контроллера).Url.Action
гораздо эффективнее, чемHtml.ActionLink
. У меня был список из 6000 предметов, в которых было 2Html.ActionLinks
. На рендеринг списка ушло 6600 мс. БезHtml.ActionLinks
этого прошло 52 мс. ИспользованиеUrl.Action
заняло 270 мс. Конечно, 6000 предметов - это большой список, но я подумал, что добавлю его для дальнейшего использования.Html.ActionLink
генерирует<a href=".."></a>
тег автоматически.Url.Action
генерирует только URL.Например:
генерирует:
и
генерирует:
Лучший плюс, который мне нравится использовать
Url.Action(...)
Вы создаете тег привязки по своему усмотрению, где вы можете легко установить собственный связанный текст, даже с помощью другого HTML-тега.
источник
В приведенном выше примере вы можете видеть, что если мне определенно нужна кнопка для выполнения какого-либо действия, я должен сделать это с помощью @ Url.Action, тогда как если мне просто нужна ссылка, я буду использовать @ Html.ActionLink. Дело в том, когда вам нужно использовать какой-то элемент (HTML) с URL-адресом действия.
источник
@HTML.ActionLink
генерируетHTML anchor tag
. Пока@Url.Action
генерируетURL
для вас. Вы можете легко понять это;Оба эти подхода различны, и это полностью зависит от ваших потребностей.
источник
Вы можете легко представить Html.ActionLink в виде кнопки, используя соответствующий стиль CSS. Например:
источник
Я использовал код ниже, чтобы создать кнопку, и это сработало для меня.
источник