假设我要显示我的“人”类
我可以用两种方式做到:
在我的html中添加了一些asp:标签,并将其填入我的服务器代码中:
lblName.Text = person1.Name
lblAge.Text = person1.Age
使用asp:formView控件,所以我的服务器代码如下所示:
Dim myDataSource = New Object() {person1}
FormView1.DataSource = myDataSource
FormView1.DataBind()
我的html看起来像这样:
<asp:FormView ID="FormView1" runat="server">
<ItemTemplate>
Name:<%# Eval("Name")%>
<br />
Age:<%# Eval("Age")%>
</ItemTemplate>
</asp:FormView>
哪种方式更好?使用服务器标签的成本是多少?
答案 0 :(得分:0)
它是相同的,因为控件必须是runat="server"
并且它从服务器端将值分配给控件。
主要区别在于您在code_behind文件或标记文件中分配值。无论你喜欢哪里。在这两种情况下,都需要到服务器端来收集这些值。
我认为使用服务器标签的成本与在代码文件中分配值不同,因为它们是在页面的呈现阶段处理的。
从msdn提取:
将代码添加到ASP.NET网页的默认模型是 创建一个代码隐藏类文件(代码隐藏页面)或编写 脚本块中的页面代码,其属性为runat =“server”(a 单文件页面)。您编写的代码通常与之交互 页面上的控件。例如,您可以显示有关的信息 通过设置控件的Text(或其他)属性从代码页面。 另一种可能性是使用a将代码直接嵌入到页面中 嵌入式代码块。嵌入式代码块嵌入式代码块是 在页面呈现阶段执行的服务器代码。代码在 该块可以执行编程语句和调用函数 当前页面类。
嵌入式代码块的使用支持嵌入式代码块 ASP.NET网页主要是为了保持向后兼容性 较旧的ASP技术。通常,使用嵌入式代码块 复杂的编程逻辑不是最佳实践,因为当时 代码在页面上混有标记,可能很难调试 并保持。另外,因为代码只在执行期间执行 页面的渲染阶段,你的灵活性要比 使用代码隐藏或脚本块代码将代码范围限定为 适当的页面处理阶段。嵌入式代码的一些用途 块包括:将控件或标记元素的值设置为a 函数返回的值,如上例所示。 将计算直接嵌入到标记或控件属性中。