Просто легче ввести псевдоключевое слово var время от времени, чем огромное имя типа, особенно если дженерик мог бы быть включен. Однако необходимо знать, что они функционально идентичны. Нет никакого различия в производительности или чего-либо так или иначе. Компилятор получает тип правой стороны присвоения и заменяет var тем типом. Этого не происходит во времени выполнения как вариант VB.
Основное отличие состоит в том, что HtmlControls предоставляет способ адресации только части страницы во время цикла страницы, тогда как WebControls сохраняют состояние.
В вашем примере, если вы присваиваете какое-то значение параметру текст метки, он будет сохраняться во всех PostBacks.
По моему опыту, гораздо лучше использовать HtmlControls, если вы можете, они намного легче и не заполняют ваше ViewState. Используйте WebControls, когда вам нужно, чтобы они отслеживали состояние.
Например, вы можете захотеть использовать Label для заголовка страницы, потому что вы можете назначить значение только один раз (обычно в Page_OnLoad
внутри if (! IsPostBack)
блок). Возможно, вы захотите использовать диапазон HTML, чтобы предоставить некоторую обратную связь о статусе (например, где статус обновляется при каждой обратной передаче).
Я бы использовал подход диапазона. Какой бы серверный элемент управления вы ни использовали, он, наконец, будет отображаться как элемент HTML. Если ваша функциональность может быть реализована с помощью элемента управления html, лучше используйте это .. Для серверного элемента управления, такого как сетка данных, вам может потребоваться больше кода для достижения этой функциональности с помощью таблицы html. В этом случае вы можете использовать серверный элемент управления.
одно поведение кнопки asp: всегда отображается как input type = submit и asp: imagebutton всегда отображаются как input type = image