关于用C#与ASP。NET的问题

biancolai 2003-10-09 11:03:47
不是说asp.net提倡html代码和c#代码分离吗,也就是两个文件*。aspx和*.aspx.cs,可是我看到的书,我刚买了一本叫〈精通c#与ASP。NET 〉的书,里面的代码都是只在一个文件里,C#代码在〈script></script>里,这样不是违背了微软的意思吗?而且asp.net是事件驱动的,当你在VS。NET开发的时候,事件的代码都是在。aspx.cs里面的,所以我运行那书里的范例有点累啊,还要自己把它的代码分离,真是郁闷啊。。告诉我你们写asp.net程序的时候是一个文件还是两个文件啊?
...全文
25 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
precipitant 2003-10-09
  • 打赏
  • 举报
回复
我也是初学者,我也有好多这方面的疑问,但是我现在又一点心得,想谈一谈。

代码分离是.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();
来实例化一个类

好了花了二十分钟写了这么些东西。不知道有没有错误,不知道对你有没有一点帮助。
littlechang 2003-10-09
  • 打赏
  • 举报
回复
其实都可以,只是写成两个文件比较规范,而且隐藏了服务器端实现。
acewang 2003-10-09
  • 打赏
  • 举报
回复
初学多手写没什么坏处
AskerX 2003-10-09
  • 打赏
  • 举报
回复
代码分离好处多多,所以分离吧。。。
最直接的好处就是写在cs中的东西客户不可见,安全啊。
biancolai 2003-10-09
  • 打赏
  • 举报
回复
哇 ,谢谢啊,特别是前进中,呵呵,我才学几天,真的是菜鸟,你的经验给了我很大的启发,谢谢
zsww 2003-10-09
  • 打赏
  • 举报
回复
建议你使用代码后置!

-----------努力学习 不断实践 虚心讨教---------

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧