[英]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"/>
然后您將能夠看到正在生成的特定錯誤。
這就是我要做的。
將customErrors標記放在system.web中非常有幫助。 (謝謝,dahrnsbrak)
它不喜歡術語“ Globals”,因此我將名稱更改為clsCommon。
更改程序集名稱很方便。 (再次感謝,標記)
系統不關心(甚至顯然不使用)dll。 我編譯只是為了檢查錯誤。
它確實使用vb文件。 所以我將clsCommon.vb復制到與aspx文件相同的目錄中。
我必須在類文件中做很多事情。 這是一個簡短的版本,但是最終版本。
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
我必須在aspx文件中執行以下操作才能調用此功能。
一種。 在我添加的文件的頂部:
<%@ page inherits="clsCommon" src="clsCommon.vb" %>
灣 調用該函數的特定行是:
<%
Response.Write ( clsCommon.html_thingie("Register for Course") )
%>
http://www.4guysfromrolla.com/webtech/chapters/ASPNETUnleashed/ch06.3.shtml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.