Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 这里发生了什么?_Asp.net_Vb.net - Fatal编程技术网

Asp.net 这里发生了什么?

Asp.net 这里发生了什么?,asp.net,vb.net,Asp.net,Vb.net,我真的不知道如何简单地问这个问题 我需要在页面上的多个位置显示客户端名称,但它们并不总是同时可见 我最初的解决方案是3个标签控件uxClientName1、uxClientName2和uxClientName3,当我需要它们时,我会在我的代码中填充它们 uxClientName1 = CurrentClient.ClientName 一位同事建议我使用以下解决方案。在我的页面上,无论我在哪里需要它,我都会有它 <%=DisplayClientName()%> 这很好,因为它做的正

我真的不知道如何简单地问这个问题

我需要在页面上的多个位置显示客户端名称,但它们并不总是同时可见

我最初的解决方案是3个标签控件uxClientName1、uxClientName2和uxClientName3,当我需要它们时,我会在我的代码中填充它们

uxClientName1 = CurrentClient.ClientName
一位同事建议我使用以下解决方案。在我的页面上,无论我在哪里需要它,我都会有它

<%=DisplayClientName()%>
这很好,因为它做的正是我想要的,没有重复的代码,但我真的不知道它是如何工作的,或者到底发生了什么

有什么解释吗

编辑:这是我在页面上的客户端属性

Private Property CurrentClient() As Client
    Get
        If ViewState("CurrentClient") Is Nothing Then
            '   No such value in view state, take appropriate action.
            ViewState("CurrentClient") = New Client
            Return CType(ViewState("CurrentClient"), Client)
        Else
            Return CType(ViewState("CurrentClient"), Client)
        End If
    End Get
    Set(ByVal value As Client)
        ViewState("CurrentClient") = value
    End Set
End Property

当提供页面时,ASP.NET将尝试调用该函数,然后将其返回值写入响应流

这只会发生一次

<%= func() %>
表示在计算页面时在服务器端调用func。它只是将应答的返回值写入响应。

之间的代码在服务器端执行。=符号表示方法的结果将输出到页面。因此,页面中的内容基本上将替换为DisplayClient的返回值。

这些是

必须编写嵌入式代码块 使用页面的默认语言。对于 例如,如果页面的@page 指令包含该属性 language=VB,页面将使用 Visual Basic编译器编译代码 在标记为的任何脚本块中 runat=server和中的任何内嵌代码 分隔符

中支持嵌入式代码块 ASP.NET网页主要用于 保持与的向后兼容性 旧的ASP技术。一般来说 使用嵌入式代码块实现复杂的 编程逻辑不是最好的方法 练习,因为当代码 在带有标记的页面上混合,它可以 很难调试和维护。在里面 另外,因为代码是执行的 仅在页面的呈现阶段, 你的收入大大减少了 比代码隐藏或 在限定代码范围时为块代码编写脚本 到页面的适当阶段 处理

嵌入式代码块的一些用途:

将控件或标记元素的值设置为函数返回的值 将计算直接嵌入到标记或控件属性中。
这是一个。

经典的ASP,这就是它过去的工作方式。谢谢。那么,什么才是这种功能的合适替代品呢。使用3个标签并在不同的地方填充它们似乎不太合适。如果您使用它做得很好,请使用它。一般来说,使用嵌入式代码块并不坏,但通常可能有更好的方法。什么是CurrentClient?CurrentClient是我创建的一个客户端类的实例。@Westicle:什么是客户端类,在哪里/如何初始化?如果我们有更多的背景信息,我们可能会建议一个替代方案。@Tim客户机类是我创建的一个简单类,用于表示为我的业务工作的客户机。在页面加载时,我从查询字符串中获取客户机ID,创建客户机类的实例,并通过页面属性将其存储在viewstate中。我在上面的问题中加了这个。
<%= func() %>