使用“Code-in-Front”,如何组合服务器端脚本?

时间:2011-09-19 18:03:42

标签: asp.net

我正在开发一个ASP.NET网站,它要求使用“前面的代码”模型完成所有服务器端代码 - 我必须在.aspx,.ascx或.master上使用服务器端脚本块页面。我想在服务器端脚本中定义一个类(称为Vehicle),并根据需要将该定义导入其他页面或控件。这可能吗?

我想在某处定义这个类(用户控件?):

<script runat="server">
  Public class Vehicle
  {
    public int Id {get; set; }
    public string Name{ get; set; }
  }
</script>

然后在site.master上创建一个实例:

<script runat="server">
  //todo:  include the script block containing the definition of Vehicle
  public Vehicle v = new Vehicle{ Id=1, Name="Car1"};
</script>

然后在default.aspx上使用它:

<script runat="server">
  Response.Write (master.v.Name);
</script>

我知道这可以对抗ASP.NET,但重点是我无法重新编译网站或部署另一个程序集,我无法创建.cs源文件,只能创建asp.net页面或控件。

2 个答案:

答案 0 :(得分:2)

您将无法将所有类保留在.as?x文件中,但我认为您想要的是“即时编译”。您可以执行相同的操作,并且仍然可以通过创建App_code目录将您的类放入.cs文件中。如上所述here,该文件夹中的代码将在运行时自动编译。

答案 1 :(得分:0)

你现在有了正确的答案。但是你的要求消除了正确性的可能性。 :|如果不使用App_Code或使用在不同项目中编译的外部库,则无法执行您要执行的操作。