C# MVC: Производительность и Преимущества Помощников HTML MVC по сравнению с Прямым HTML в представлениях

Это работает также.

select *
into #so20150909
from table
where 1=0
16
задан Matt 26 October 2016 в 03:09
поделиться

4 ответа

Людям действительно нравится беспокоиться о накладных расходах, связанных с рефлексией. Однако за пределами синтетических тестов это становится довольно скучной темой!

В контексте реального производственного приложения (например, когда вы выполняете операции CRUD с базами данных или используете веб-сервис), накладные расходы на использование помощников HTML составляют будет незначительным по сравнению с накладными расходами на выполнение такого рода переключения контекста.

На самом деле не о чем беспокоиться, особенно с учетом преимуществ, которые предоставляют помощники HTML, такие как автоматическое восстановление значений формы из ViewData / Model и поддержка проверки.

Итог: по возможности используйте помощники html. Вы всегда можете использовать прямой HTML-код, если столкнетесь с редким ограничением, которое необходимо обойти.

13
ответ дан 30 November 2019 в 22:17
поделиться

Я сделал это обоими способами, и производительность кажется примерно такой же. Фил Хаак говорит, что вы можете сделать это в любом случае - что помощники - это всего лишь помощники, и, если хотите, вы можете написать простой старый HTML.

Я не уверен, что помощники есть какие-то безопаснее ... в любом случае вы получите тот же HTML-код на веб-странице ... но intellisense, похоже, по какой-то причине работает лучше в помощниках, что приятно.

Выпадающие списки легче создавать с помощью помощников, поскольку вам не нужно запускать цикл для списка выбора. Скрытые поля и текстовые поля (а также ссылки), на мой взгляд, выглядят лучше в простом HTML, особенно если они содержат несколько атрибутов, поскольку вы можете избежать этого синтаксиса инициализации объекта.

Обычный HTML хорошо сочетается с jQuery ( см. Здесь пример ). А простой HTML легче читать.

Я полагаю, что вспомогательные методы могут быть полезны, когда вы хотите добавить в html более крупную структуру. Через несколько месяцев вы найдете веб-сайты, богатые этими методами, которые будут поддерживать все виды функций. Представьте, что вы можете добавить график на свою страницу с помощью одной строчки кода.

2
ответ дан 30 November 2019 в 22:17
поделиться

В HtmlHelpers нет никакого отражения. Последний параметр не является объектом, это словарь, поэтому поиск значений осуществляется через хеш-таблицу, а не отражение. HtmlHelper хорош тем, что его методы безопасны и надежны ... ввод кодируется там, где необходимо, проверки безопасности выполняются там, где это необходимо, и т. Д. HtmlHelpers - это гораздо больше, чем просто рендеринг HTML.

0
ответ дан 30 November 2019 в 22:17
поделиться

Результаты действия вашего контроллера (вызванного GET) во многих случаях должны быть кэшированы для достижения хорошей производительности. Поэтому вам не следует беспокоиться о времени выполнения вашего представления. Мне трудно представить ситуацию, когда время выполнения вашего HtmlHelper может стать узким местом производительности.

0
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: