Я прошу прощения за возможное введение в заблуждение относительно названия, но я понятия не имею о правильном названии.
Не стесняйтесь редактировать.
В любом случае, я использую веб-формы ASP.NET, и, возможно, это не то, как веб-формы предназначены для использования, но мне нравится создавать и заполнять HTML-элементы вручную. Это дает мне больше контроля.
Я не использую DataBinding и тому подобное. Я использую SqlConnection, SqlCommand и SqlDataReader, задаю строку SQL и т. Д. И читаю данные из DataReader.
Старая школа, если хотите. :)
Я создаю WebControls, так что мне не нужно копировать-вставлять каждый раз, когда мне нужен какой-то элемент управления, но в основном мне нужны WebControls для рендеринга в виде HTML, чтобы я мог добавить этот HTML в некоторую другую функцию, которая отображает окончательный результат с контролем внутри.
Я знаю, что могу отобразить элемент управления с помощью control.RenderControl (writer), но это можно сделать только в (пред) переопределениях Render или RenderContents.
Например.
У меня есть файл dal.cs, где хранятся все статические функции и пустоты, которые связываются с базой данных.
Функции в основном возвращают строку, чтобы ее можно было добавить в какую-то другую функцию для отображения окончательного результата.
Причина, по которой я так поступаю, заключается в том, что я хочу отделить кодирование от HTML настолько, насколько могу, чтобы я не делал <% while (dataReader.Read ())%> в HTML и отображал данные. Я переместил это в CodeBehind.
Я также использую эти функции для рендеринга в HttpHandler для ответа AJAX.
Это прекрасно работает, но когда я хочу добавить элемент управления (элемент управления ASP.NET Server (расширение .cs, а не .ascx)), я не знаю, как это сделать, поэтому я вижу, что сам пишу тот же элемент управления как функция, которая возвращает строку или другую функцию внутри этого элемента управления, которая возвращает строку и заменяет задание, которое будет выполнять RenderContents, чтобы я мог вызвать эту функцию, когда мне нужно добавить элемент управления в другую строку.
Я знаю, что это не очень хорошая практика.
Поскольку я вижу все учебные пособия / видео о ASP.NET MVC, я думаю, что это соответствует моим потребностям, так как с MVC вы должны создавать все (или большую часть) самостоятельно, что я уже делаю сейчас с веб-формами.
После этого длинного вступления я хочу спросить, как я могу построить свои элементы управления, чтобы я мог использовать их, как я уже упоминал (возвращаемая строка), или я должен забыть о серверных элементах управления и создать элементы управления как функции и использовать их таким образом?
Возможно ли это даже с ASP.NET Server Controls (расширение .cs) или я прав, когда сказал, что не правильно его использую.
Чтобы было ясно, я говорю о том, как правильно использовать веб-формы, но избегать связывателей данных, потому что я хочу создавать все самостоятельно (рендерить HTML в Code Behind).
Кто-то может подумать, что я добавляю строки вроде «some» + «string», что я не являюсь. Я использую StringBuilder для этого, поэтому нет медлительности.
Любое мнение приветствуется.