Первая и самая важная вещь - не смешивайте бизнес-логику и функциональные возможности доступа к данным с разметкой представления данных!
Если вы используете WebForms, вы можете использовать Repeater control , который связанв коде страницы / элемента управления (aspx.cs / ascx.cs), поэтому View остается отделенным и просто привязанным к определенным свойствам источника данных:
ASPX:
<asp:Repeater ID="employees" runat="server">
<HeaderTemplate>
<table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label runat="Server"
Text="<%# DataBinder.Eval(Container.DataItem, "FirstName") %>"/>
</td>
<td>
<asp:Label runat="Server"
Text="<%# DataBinder.Eval(Container.DataItem, "LastName") %>"/>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
Код сзади: (например, Page_Load ())
employees.DataSource = dataset.Tables["empoloyees"].Rows;
employees.DataBind();