ASP.NET等效于服务器端包含

时间:2009-05-21 19:36:50

标签: asp.net include

虽然服务器端的经典ASP方法包含在ASP.NET中工作,但我得到的印象是它不是首选方法。我怎么“应该”达到同样的效果呢?

这就是我现在正在做的事情:
<!-- #include file ="functionlib.aspx" -->

4 个答案:

答案 0 :(得分:37)

您现在有许多选项可以提供此效果,但方式不同。

  • 用户控件(.ascx)
  • 母版页(.master)
  • 服务器端控件(.dll)
  • 类库(.dll)
  • App_Code类(.cs / .vb)

每个用于不同的事情以实现不同的事物。这取决于你真正想做的事情。鉴于您的包含文件的名称,我想您正在尝试包含将在您的页面上下文中使用的库函数。

因此,您将编写一个包含这些方法的类库,并将它们导入到您的application / aspx中。

如果您正在考虑模仿将执行大部分布局工作的页面以提供不同内容的正文,那么您将对母版页感兴趣。

如果您正在查看可在许多页面中使用的模板控件,那么您将会在用户控件之后。

如果您正在查看许多项目中可供许多项目使用的模板控件,那么您将会看到服务器端控件。

如果您正在查看类/方法库,那么您将开发一个类库或使用app_code类,该类可以在第一次调用时进行JIT编译。这个可能在某种程度上被认为更像是经典的ASP,但实际上它更像是一个类库中的类作为一个单元。您可以在代码隐藏中或在&lt; %%&gt;内调用它您的aspx / ascx代码中的标记,无需引用类库。

我们实际上并没有真正使用“includes”,但是您的工具包中的每个工具都允许您为不同的场景提供类似的概念。作为开发人员,您将以不同方式与网页的整个页面生命周期进行交互。 ASP.NET是一种与传统ASP完全不同的野兽。它确实需要不同的观点/方法,并需要一些耐心才能找出差异。

答案 1 :(得分:12)

<% Response.WriteFile("myFile.aspx"); %>怎么样?

请参阅:https://support.microsoft.com/en-us/help/306575/how-to-dynamically-include-files-in-asp-net

答案 2 :(得分:9)

如果您使用的是ASP.NET MVC,那么Html.RenderPartial就是您的朋友。

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.renderpartialextensions.renderpartial.aspx

部分视图可以实现为.ascx或.aspx,并且将上述调用放在“主要”页面中基本上说“从此局部视图获取输出并在此处呈现”。

Parial视图可以使用主视图从控制器接收的ViewData。

答案 3 :(得分:1)

听起来你需要关注的是MasterPages的整个概念。

除非您正在查看仅导入函数和其他实用程序(不是html内容)。如果是这种情况(并且您正在使用代码隐藏模型),则应该能够使用.vb页面顶部的imports命令包含相应的文件或命名空间(相应地调整C#)。

相关问题