簡體   English   中英

asp.net視覺基礎的“外部功能”

[英]asp.net visual basic “external function”

我正在將一些Foxweb內容轉換為asp.net。 我希望從一些簡單的事情開始學習這些技術,並在以后解決更棘手的問題。

我有一種情況,我試圖使用在另一個文件中聲明的函數。 我預計這將是一件很常見的事情,因為除非它被(稱為)單獨的文件使用,否則可能不會放入單獨的文件中。

在我的aspx文件中,有一行如下所示:

Response.Write ( Globals.html_thingie("My Title") )

在另一個文件中,我編寫了一個類似於以下內容的類:

Public Class Globals
    Public Shared Function html_thingie(ByVal title As String)

        Dim str As String
        str = "<head>" &  title & "</head>" & vbCrLf
        Return str

    End Function
End Class

當我構建類(在Visual Studio中)時,它沒有給出任何錯誤或警告,並創建了一個名為ClassLibrary1.dll的dll文件,該文件復制到了aspx文件所在的目錄中。 我不知道為什么它使用名稱“ ClassLibrary1”,因為我將解決方案名稱更改為“ Globals”以匹配類名稱,並將我“認為”的項目名稱更改為“ clsGlobals”。 無論如何,我將dll復制到服務器保留aspx文件的目錄中。 當我從網頁調用aspx時,它失敗。 由於安全原因,它不會告訴我錯誤消息,但是我懷疑這里缺少一些基本信息。

想法?

該dll應該放在/bin目錄中,該目錄位於aspx頁面所在的位置。

另外,項目的名稱不一定與程序集的名稱相對應。 如果右鍵單擊項目並轉到屬性,則可以更改程序集名稱。

第三,(雖然與當前問題沒有直接關系,但是仍然很了解),解決方案名稱和類名稱彼此無關。 實際上,該解決方案與構建的實際輸出無關。 嚴格地幫助您在開發過程中邏輯上組織項目(成為程序集)。

首先,您需要將.dll文件放入網站的子目錄中,該目錄稱為bin /。 接下來,您需要在web.config中打開遠程錯誤。 將其放在<system.web>

        <customErrors mode="Off"/>

然后您將能夠看到正在生成的特定錯誤。

這就是我要做的。

  1. 將customErrors標記放在system.web中非常有幫助。 (謝謝,dahrnsbrak)

  2. 它不喜歡術語“ Globals”,因此我將名稱更改為clsCommon。

  3. 更改程序集名稱很方便。 (再次感謝,標記)

  4. 系統不關心(甚至顯然不使用)dll。 我編譯只是為了檢查錯誤。

  5. 確實使用vb文件。 所以我將clsCommon.vb復制到與aspx文件相同的目錄中。

  6. 我必須在類文件中做很多事情。 這是一個簡短的版本,但是最終版本。

     Option Explicit On Option Strict On Imports System Imports System.Web.UI Imports System.Web.UI.Page Public Class clsCommon Inherits Page Public Shared Function html_thingie(ByVal title As String) As String Dim str As String str = "<head>" & title & "</head>" & System.Environment.NewLine Return str End Function End Class 
  7. 我必須在aspx文件中執行以下操作才能調用此功能。

一種。 在我添加的文件的頂部:

<%@ page inherits="clsCommon" src="clsCommon.vb" %>

調用該函數的特定行是:

<%
Response.Write ( clsCommon.html_thingie("Register for Course") )
%>
  1. 除了您的回復外,我發現以下頁面也很有幫助:

http://www.4guysfromrolla.com/webtech/chapters/ASPNETUnleashed/ch06.3.shtml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM