代码分离是.net时代所提倡的,所以我们如果还按照asp时的任意嵌套方式就不好了。那样界面和功能的改动都回很麻烦,所以我们都是按照代码分离的方式写的。
我总结,却又你提到的两种方式。
我认为低一种叫后代吗模块即一个.aspx文件和一个.cs(.vb)文件,.aspx中写的是界面,所有的功能逻辑都写道.cs中。这种情况一般都用在什么情况呢。我认为是用vs.net作为开发环境的时候,因为这是你创建一个web窗体的时候会自动帮你创建,这个.cs而且这是在.cs中写代码回有代码提示功能,所以效率会很高。当然不利于更熟练的掌握代码。毕竟太多的提示使你兜懒得去记忆属性什么的了。使用这种方法你还会看到.aspx文件上部有这样一行:
假设当前文件名为manage.aspx,后代吗文件名为manage.aspx.cs
<%@ Page language="c#" Codebehind="manage.aspx.cs" AutoEventWireup="false" Inherits="csMarket.manage" %>
这一行中有一个Codebegind属性,指定了当前文件的代码位于manage.aspx.cs文件中
如果用第二种方式,就不用那个.cs文件了,也就是将界面与代码都写在.aspx文件中。一般界面和代码分开写。
将代码包含在<script language="c#" runat=server></script>
这种方式一般都用没有用vs.net作为开发环境的情况下。因为如果用vs.net,决定用第二种,就会麻烦,而且写代码也没有提示。所以如果不用vs.net作为开发环境的时候,可以选第二种。
这种方法的代码写法与写在.cs(后代码模块)中基本一样。响应的事件一般要包含这样两个参数(object sender,EventArgs e)
引用名称空间这样的方式   <%@Import NameSpace="名称空间名"%>
例:
<%@ Page language="C#" %>
<%@Import NameSpace="System"%>
<%@Import NameSpace="System.Data"%>
<%@Import NameSpace="System.Data.OleDb"%>
<%@Import NameSpace="DatabaseOP"%>
第一行中不用再指定Codebehind属性了。
这样就讨论了两种方法,不知道阁下认同与否。
还有在vs.net中开发asp.net效率很高但是有什么缺点呢,任何对.cs的更改,都要重新生成一下才能生效。所以还离不开vs.net了。
开发的时候.aspx中写js和html都有提示,但是写c#代码没有提示,而在.cs中写c#代码就有提示。
阁下还要注意一点,一般你可以将一些和信代码或者一些模块代码,通用逻辑等等都写到一个独立的.cs中,建一个新的名称空间,将代码模块按功能划分到各个类中。然后用csc.exe将它编译成dll文件,拷贝到你的web虚拟目录下的bin目录下。你就可以在其他的地方引用它了
例如:
.cs内容为:
   namespace DatabaseOP
{
    using System;
    public class a{ }
    public class b{ }
    public class c{ }
    public class d{ }  
    
}
引用的方式:
在.aspx中
<%@Import NameSpace="DatabaseOP"%>
然后就可以在代码中
a mm=new a();
来实例化一个类了
在.cs中
直接用DatabaseOP.a mm=new DatabaseOP.a();
来实例化一个类