我不是编程新手,但我是Visual Studio,MVC,C#,ASP.NET和EXT.NET的新手,也就是我尝试使用的所有工具。
我正在尝试创建一个Ext.Net 2.0 MVC4项目,并获得了一个类似的(在功能上)非MVC项目供参考。
我看到这个非MVC项目有.aspx和.aspx.cs文件。似乎.aspx文件基本上映射到我想要制作的MVC中的“视图”...而.aspx.cs文件具有与.aspx文件相关的功能 - 所以就像“控制器”一样?虽然.aspx文件也有一些似乎与视图无关的函数......
有人可以给我一个快速概述或从这个开始的地方吗?
答案 0 :(得分:15)
ASPX文件通常具有UI,并且通常是HTML标签,一些ASP.NET服务器控件嵌入代码(最终产生一些HTML标记)。 ASPX.CS文件(通常称为代码隐藏)将在C#中具有服务器端编码。
如果需要,我会将ASPX页面与View和ASPX.CS与Controller操作方法联系起来。
你必须记住,在webforms中,我们将在ASPX文件中使用ASP.NET控件来呈现一些HTML。示例是TextBox,DataGrid等。在MVC中,没有任何称为服务器控件。 View将是纯手写HTML。
如果需要,您可以创建一个混合项目,它是MVC和webforms的组合。斯科特有一篇文章解释它here。
从ASP.NET Webforms切换到MVC时,您必须要了解的一件重要事情是MVC架构试图坚持 HTTP无状态这一事实。 MVC中没有 viewstate 。因此,您需要确保根据需要重新填充每个HTTP请求中的数据。人们在MVC中加载DropDownlist时经常遇到问题。这里有很多answers关于如何处理回发上的下拉列表(当表单发布时)。
我建议您在ASP.NET MVC上查看一些初学者级tutorials并开始逐步构建应用程序,如果遇到任何问题,请发布一个( new < / strong>)问题及相关细节。
祝你好运,欢迎来到MVC的精彩世界。 :)答案 1 :(得分:2)
听起来你没有创建一个MVC项目,而是一个WebForms项目。
* .aspx文件是标记,* .aspx.cs文件是代码隐藏文件。代码隐藏文件处理* .aspx文件中任何服务器端控件的.NET代码。
答案 2 :(得分:2)
查看Wikipedia关于ASP.NET的文档,http://en.wikipedia.org/wiki/ASP.NET。
它声明:
网页表单包含在扩展名为“.aspx”的文件中;这些文件 通常包含静态(X)HTML标记以及标记定义 服务器端Web控件和用户控件开发人员所在的位置 网页的所有rc内容。 此外,在服务器上运行的动态代码可以放在一个 块中的页面&lt;% - 动态代码 - %&gt;,类似于 其他Web开发技术,如PHP,JSP和ASP。同 ASP.NET Framework 2.0,微软推出了一种新的代码隐藏模型 它允许静态文本保留在.aspx页面上,同时保持动态 代码保留在.aspx.vb或.aspx.cs或.aspx.fs文件中(取决于 使用的编程语言。)
.cs文件名.aspx.cs是.aspx背后的代码,它通常包含html,css,javascript和其他客户端控件。
通常,动态代码(在这种情况下是C#,因为文件名上的.cs)在.cs文件中作为“良好做法”来保持动态代码和静态html分开。这种抽象的另一个原因是.aspx.cs代码在服务器端运行,而.aspx文件在服务器上编译,然后提供给请求它的Web客户端。
此外,对于MVC,我建议使用不同的视图模型,特别是Razor,它使用.cshtml文件而不是.aspx.cs和.aspx,因为它们更容易理解。 MVC更改的原因是MVC使用MVC模式来抽象代码层,以便.aspx和.aspxcs不是必需的。从个人经验来看,我使用了Razor和Webforms(.aspx / .aspx.cs)视图模型和MVC,我发现Razor更容易编码/维护和使用。
答案 3 :(得分:1)
aspx文件包含您的页面标记。它由ASP.NET自动转换为代码。
cs文件包含页面后面的代码(初始化,事件处理程序等)。你必须自己编写代码。
这两个文件与继承有关,而@Page指令的Inherits属性将页面标记与后面的代码相关联
答案 4 :(得分:0)
.aspx是您的标记文件。包含HTML,CSS,JavaScript和ASP标记等内容。 此.cs文件称为代码隐藏文件。这是您可能无法使用的东西,或者您不习惯使用脚本语言。通常,aspx在客户端运行,而后面的代码在服务器上执行。