2015-02-17 54 views
1

我有以下事件處理代碼:如何在標記中的ASP.NET代碼隱藏中訪問對象?

Public Class Details 
    Inherits System.Web.UI.Page 

    Public veh As Vehicle 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  
     Dim id As Integer = Request("id") 
     veh = New DataRepository().vehicles.get(id) 
    End Sub 

End Class 

,並嘗試訪問它在我的標記,像這樣:

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="Added.aspx.vb" Inherits="Auto_Dealer_Website.Added" %> 


<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <% veh.color()%> 
</asp:Content> 

但是編譯器將無法識別它。我錯過了什麼?我如何參考我的veh對象?

解決

不能引用代碼隱藏而不需要先建立項目。

+0

它不是好的做法,以做到這一點。你不應該混用你的視圖中的代碼隱藏。 – 2015-02-17 21:46:40

+0

爲什麼地球上這是一個壞主意? – 2015-02-17 21:48:19

+0

您正在將您的代碼混合在一起,並導致代碼調試和維護更令人頭疼。您應該將控件添加到您的用戶界面,然後從代碼隱藏設置它們。同樣出於性能方面的考慮......它會使用反射,例如,如果你做同樣的事情並使用中繼器,它將需要使用反射來獲得它的價值。做一個谷歌搜索,你會看到。 – 2015-02-18 06:40:52

回答

1

添加等號輸出變量:

<%= veh.make %> 
+0

仍然不起作用。我也嘗試過'<%#Eval(veh.make)%>'沒有運氣。 – 2015-02-17 21:39:00

+0

你會得到什麼錯誤? – 2015-02-17 21:40:17

+0

'veh'未被聲明。由於其保護級別,它可能無法訪問。 – 2015-02-17 21:40:39

相關問題