0

假设我想显示我的“人”类。
我可以通过两种方式做到这一点:

  1. 在我的 html 中添加一些 asp:labels,并将它们填充到我的服务器代码中:

    lblName.Text = person1.Name 
    lblAge.Text = person1.Age 
    
  2. 使用 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>
    

哪种方式更好?使用服务器标签的成本是多少?

4

1 回答 1

0

这是相同的,因为控件必须是runat="server"并且它从服务器端将值分配给控件。

主要区别在于您在 code_behind 文件或标记文件中分配值。随心所欲。在这两种情况下,它都需要去服务器端收集这些值。

我认为使用服务器标签在代码文件中分配值的成本不会有所不同,因为它们是在页面的渲染阶段处理的。

摘自msdn:

将代码添加到 ASP.NET 网页的默认模型是创建代码隐藏类文件(代码隐藏页面)或将页面的代码写入具有属性 runat="server" 的脚本块中(a单文件页面)。您编写的代码通常与页面上的控件交互。例如,您可以通过设置控件的 Text(或其他)属性,从代码中在页面上显示信息。另一种可能性是使用嵌入式代码块将代码直接嵌入到页面中。嵌入式代码块 嵌入式代码块是在页面呈现阶段执行的服务器代码。块中的代码可以执行当前页面类中的编程语句和调用函数。

嵌入式代码块的使用 ASP.NET 网页支持嵌入式代码块,主要是为了保持与旧 ASP 技术的向后兼容性。一般来说,将嵌入式代码块用于复杂的编程逻辑并不是最佳实践,因为当代码与标记混合在页面上时,可能难以调试和维护。此外,由于代码仅在页面的呈现阶段执行,因此在将代码范围限定到页面处理的适当阶段时,与使用代码隐藏或脚本块代码相比,您的灵活性要低得多。嵌入式代码块的一些用途包括: 将控件或标记元素的值设置为函数返回的值,如前面的示例所示。将计算直接嵌入到标记或控件属性中。

于 2013-10-17T06:27:06.187 回答