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

Sco*_*ott 33 asp.net include

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

这就是我现在这样做的方式:
<!-- #include file ="functionlib.aspx" -->

Ben*_*ter 37

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

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

每种都用于不同的方式来实现不同的东西.这取决于你真正想做的事情.鉴于您的包含文件的名称,我想您正在尝试包含将在您的页面上下文中使用的库函数.

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

如果您正在查看将完成大部分布局工作的页面,以提供不同内容的正文,那么您将对母版页感兴趣.

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

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

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

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

  • 不要忘记App_Code类 - 它们比传统的ASP模型更接近于类库. (2认同)

小智 12

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

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

  • 只是为了澄清,即使包含的文件以`.aspx`结尾,它也不会被asp.net引擎处理 (17认同)

Mar*_*eck 9

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

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

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

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

  • 呃……是的。由于某种原因,我在问题中读到了“MVC”,而它显然不存在。人们还在使用老式的 ASP.NET 吗???;-) (2认同)