Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET页面继承_Asp.net_Vb.net_Reflection_Inheritance - Fatal编程技术网

ASP.NET页面继承

ASP.NET页面继承,asp.net,vb.net,reflection,inheritance,Asp.net,Vb.net,Reflection,Inheritance,在网上寻求建议,但距离不远,所以我想我会征求一些建议。我已经看过了,所以我知道我想做什么,但看看我能知道是怎么做的 我想做的是,允许用户修改ASPX文件的布局,以便他们可以将其用作信函模板、移动地址行、页面e.t.c的格式。现在在我展示的示例中,页面继承了一个标准类,该类具有一组通用函数,例如foreName/sureName/addressLine1 e.t.c,然后,在设计ASPX文件时,如果用户希望显示addressLine1,他们将添加标签content=“addressLine1” 任

在网上寻求建议,但距离不远,所以我想我会征求一些建议。我已经看过了,所以我知道我想做什么,但看看我能知道是怎么做的

我想做的是,允许用户修改ASPX文件的布局,以便他们可以将其用作信函模板、移动地址行、页面e.t.c的格式。现在在我展示的示例中,页面继承了一个标准类,该类具有一组通用函数,例如foreName/sureName/addressLine1 e.t.c,然后,在设计ASPX文件时,如果用户希望显示addressLine1,他们将添加标签
content=“addressLine1”


任何关于如何实现上述目标的建议都将不胜感激,我想我遗漏了很多简单的东西

可能会使用基类,其属性需要定义为虚拟成员。只需在项目中创建一个类(没有页面,只有一个类),其中包含希望用户使用的虚拟成员

public class BasePage : Page {
  public virtual string Content;
}
在您(或您的用户)创建的页面中,您需要从该类继承。您的页面看起来像:

public class MyPage : BasePage {
  public override string Content = "My Content";

  //Other logic can go here
}
(由于BasePage继承自Page类,因此该页面的功能与任何其他Aspx页面一样)

请注意,需要在App_Code文件夹中定义基本页面类,以便可用于项目中的其他页面/项目

对于函数也可以这样做


有关虚拟成员和功能的更多信息,请访问

App_代码仅适用于网站,而不适用于web应用程序项目。这是事实。我的经验是,网站项目大部分时间都在使用(我自己一直在使用),许多人试图交叉引用页面(这将失败)。但是谢谢你的澄清!据我所知,web应用程序是在2.0中引入的,以确保与1.0和1.1的向后兼容性。web应用程序的行为与旧版本中的相同。网站项目是较新的(因此我建议大部分时间使用网站)。好的,我看到了,但是,我没有看到如何将content=“addressLine1”放置在标记中,将导致addressLine1函数被调用。。。。我说得通吗?我需要更改我的问题吗?当您在使用Content属性的BasePage中编写代码时(例如,页面加载中的Response.write(Content)).NET将使用override属性的值。因此,您可以在BasePage中编写使用虚拟属性的代码,同时用户在其代码中重写虚拟属性。当打开由用户创建的页面(该页面继承您的基本页面并覆盖您的虚拟对象)时,您的代码将自动使用指定的值(据我所知,虚拟对象必须在继承类中被覆盖)。要了解更多细节,你可以阅读一些关于对象定向的内容。啊,对了,我不完全清楚你是否理解虚拟和继承的概念(我对这个故事的解释有点不同)。你所说的看起来有点像母版纸一样。这也基于标记的ID。也许他们就是这么用的?母版页使用标记。