关于用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程序的时候是一个文件还是两个文件啊?
...全文
73 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
  • 打赏
  • 举报
回复
建议你使用代码后置!

-----------努力学习 不断实践 虚心讨教---------
【太阳能电池系统与逆变器】太阳能电池的电压输出被储存在电池中,同时直流电压通过五级逆变器转换为交流电(Simulink仿真实现)内容概要:本文档围绕太阳能电池系统与逆变器展开,重点介绍了一个基于Simulink的仿真模型,其中太阳能电池产生的直流电压被储存于电池中,并通过五级逆变器转换为交流电。该系统仿真涵盖了光伏发电、储能管理和电力电子变换的核心环节,突出了多级逆变器在提升电能质量和转换效率方面的优势。文中详细描述了系统结构、工作原理及Simulink建模过程,有助于理解可再生能源系统的能量转换与控制策略。; 适合人群:具备一定电力电子、自动控制或新能源系统基础知识的高校学生、研究人员及工程技术人员。; 使用场景及目标:①用于教学演示太阳能发电系统的能量流动与转换过程;②支持科研中对多级逆变器拓扑结构的性能分析与优化设计;③为微电网、分布式能源系统中的储能与并网控制提供仿真基础。; 阅读建议:建议结合Simulink软件实际操作,深入理解模型各模块的功能与参数设置,并可通过修改逆变器级数或控制策略进行拓展性实验,以增强对系统动态响应和稳定性的认识。
内容概要:本文全面解析了全国大学生智能汽车竞赛的赛事定位、赛制安排与竞赛类别,并通过武汉大学、成都理工大学等高校的经典参赛案例,深入剖析了智能车在视觉识别、机械结构设计、算法优化等方面的创新实践。文章进一步梳理了智能车开发的核心技术体系,涵盖感知层的多传感器融合与视觉AI部署、决策控制中的路径规划与运动控制策略,以及软硬件平台的协同架构。最后,基于竞赛技术延伸出智能物流分拣车、越野巡检机器人、多模态智能识别平台等实际应用项目,展示了从赛事到产业落地的技术转化路径。; 适合人群:具备一定电子、控制、计算机或机械基础的高校学生及指导教师,尤其适合参与智能车竞赛或工程实践项目的1-3年经验研发人员; 使用场景及目标:①了解智能车竞赛的整体架构与备赛策略;②掌握视觉识别、多传感器融合、运动控制等关键技术的设计与实现方法;③探索竞赛成果向智能物流、无人巡检、安防识别等领域的产业化应用; 阅读建议:建议结合具体案例与技术模块进行系统学习,重点关注技术突破背后的创新思维与跨学科整合方法,同时可参考文中项目实践开展原型开发与成果转化。

62,254

社区成员

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

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

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

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