【发布时间】:2010-10-28 00:58:00
【问题描述】:
虽然服务器端的经典 ASP 方法包括在 ASP.NET 中的工作,但我觉得它不是首选方法。我“应该”如何达到同样的效果?
这就是我目前的做法:<!-- #include file ="functionlib.aspx" -->
【问题讨论】:
-
虽然不如您的问题具体,但您可能会发现这个问题很有帮助:stackoverflow.com/questions/23899/…
虽然服务器端的经典 ASP 方法包括在 ASP.NET 中的工作,但我觉得它不是首选方法。我“应该”如何达到同样的效果?
这就是我目前的做法:<!-- #include file ="functionlib.aspx" -->
【问题讨论】:
您现在有许多提供这种效果的选项,但方式不同。
每个都用于不同的目的以实现不同的目标。这取决于你真正想要做什么。鉴于您的包含文件的名称,我想您正在尝试包含将在您的页面上下文中使用的库函数。
因此,您将编写一个包含方法的类库并将它们导入您的应用程序/aspx。
如果您正在寻找一个页面模板,该页面将完成大部分布局工作以提供不同内容的主体,那么您会对母版页感兴趣。
如果您正在寻找可以在许多页面中使用的模板控件,那么您将会关注用户控件。
如果您正在研究可供许多用户在许多项目中使用的模板控件,那么您将会看到服务器端控件。
如果您正在查看类/方法库,那么您将开发一个类库或使用一个 app_code 类,该类可以在第一次调用时进行 JIT 编译。这可以被认为更像是经典的 ASP,但实际上它的功能更像是作为一个单元的类库中的一个类。您可以在您的代码隐藏中或在您的 aspx/ascx 代码中的 标记中调用它,而无需引用类库。
我们实际上不再使用“包含”本身,但您工具包中的这些工具中的每一个都允许您为不同的场景提供类似的概念。作为开发人员,您将以不同的方式与网页的整个页面生命周期进行交互。 ASP.NET 是与经典 ASP 截然不同的野兽。它确实需要不同的观点/方法,并且需要一定的耐心才能找出差异。
【讨论】:
<% Response.WriteFile("myFile.aspx"); %>怎么样?
见:https://support.microsoft.com/en-us/help/306575/how-to-dynamically-include-files-in-asp-net
【讨论】:
.aspx结尾,它也不会被asp.net引擎处理
如果您使用的是 ASP.NET MVC,那么 Html.RenderPartial 就是您的朋友。
局部视图可以实现为 .ascx 或 .aspx,将上述调用放在您的“主”页面中基本上是说“从该局部视图获取输出并在此处呈现”。
Parial 视图可以使用您的主视图从控制器接收到的 ViewData。
【讨论】:
听起来你需要看的是MasterPages 的整个概念。
除非您只关注导入函数和其他实用程序(而不是 html 内容)。如果是这种情况(并且您使用的是代码隐藏模型),您应该能够使用 .vb 页面顶部的导入命令包含适当的文件或命名空间(针对 C# 进行相应调整)。
【讨论】: