我正在将ASP经典页面转换为ASP.NET。将.inc扩展名的文件包含到aspx页面的正确方法是什么?
<!--#include virtual = "adovbs.inc" -->
我注意到每次我将包含指向.inc文件的include指令的其中一个页面更改为aspx时,我都会从那些.inc文件中获得所有类型的错误。
我觉得只需将那些.inc文件中的逻辑重写为vb类。
感谢帮助
答案 0 :(得分:4)
adovbs.inc
或adovbs.asp
的目的是提供来自ADODB DLL 的命名常量值列表(由于Classic ASP依赖于VBScript中的后期绑定功能)
adovbs.asp
'--------------------------------------------------------------------
' Microsoft ADO
'
' (c) 1996-1998 Microsoft Corporation. All Rights Reserved.
'
'
'
' ADO constants include file for VBScript
'
'--------------------------------------------------------------------
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- CursorOptionEnum Values ----
Const adHoldRecords = &H00000100
Const adMovePrevious = &H00000200
Const adAddNew = &H01000400
Const adDelete = &H01000800
直到人们意识到您可以使用METADATA数据标记直接从类型库导入DLL常量,而不需要adovbs
包含文件。
<!-- METADATA
TYPE="typelib"
UUID="00000200-0000-0010-8000-00AA006D2EA4"
-->
在ASP.Net中,所有内容都被编译,因此不需要这些常量文件,因为它们已经在ADO.Net中以某种形式存在。
答案 1 :(得分:1)
如果你的问题是关于adovbs.inc的,那么@Lankymart的回答就是现实。我补充一点,该文件是用VBScript编写的(顾名思义),因此在没有使用VBS的asp.net中没用。
如果您一般询问包含文件,那么asp.net确实支持#include
指令。文件扩展名.inc
没有任何区别,如果您将其包含在.asp
文件中,那么它需要包含与Classic ASP兼容的代码,如果它包含在.aspx
文件然后它需要包含与asp.net兼容的代码。
实际上,这意味着如果您说,页眉和页脚包含仅包含客户端代码的文件,那么您可以在Classic或.net页面中使用它们。如果它们包含服务器端代码,那么您无法传输它们
可以以经典ASP页面的方式构建.aspx
页面,例如
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--#include virtual = "header.inc" -->
<%
// Put some C# code here
%>
<!--#include virtual = "footer.inc" -->
然而,有更好的方法来构建asp.net文件。我假设您转换的原因之一是您可以使用母版页,代码隐藏等。