【问题标题】:What is the difference between .aspx and .aspx.cs?.aspx 和 .aspx.cs 有什么区别?
【发布时间】:2012-10-22 09:01:09
【问题描述】:

我对编程并不陌生,但对 Visual Studio、MVC、C#、ASP.NET 和 EXT.NET(即我尝试使用的所有工具)还是陌生的。

我正在尝试创建一个 Ext.Net 2.0 MVC4 项目,并获得了一个类似(功能上)的非 MVC 项目以供参考。

我看到这个非 MVC 项目有 .aspx 和 .aspx.cs 文件。似乎 .aspx 文件基本上映射到我想要制作的 MVC 中的“视图”......并且 .aspx.cs 文件具有与 .aspx 文件相关的功能 - 就像“控制器”一样?虽然 .aspx 文件也有一些似乎不完全与视图相关的功能......

谁能给我一个快速概述或从这里开始的地方?

【问题讨论】:

  • 一个采用 HTML/ASP 标记,另一个采用 C# 代码。仅仅看一下自动生成的代码就应该能告诉你很多。
  • asp.net 是一个不错的起点。通过教程很好地概述了该技术。

标签: c# asp.net-mvc asp.net-mvc-4 ext.net


【解决方案1】:

ASPX 文件通常会有 UI 和通常是 HTML 标记,一些 ASP.NET 服务器控件嵌入代码(最终会产生一些 HTML 标记)。 ASPX.CS 文件(通常称为代码隐藏)将在 C# 中进行服务器端编码。

如果需要,我会将 ASPX 页面关联到 View 并将 ASPX.CS 关联到 Controller 操作方法。

您必须记住,在 Web 表单中,我们将在 ASPX 文件中使用 ASP.NET 控件来呈现一些 HTML。例如 TextBox、DataGrid 等。 在 MVC 中,没有什么叫做服务器控件。视图将是纯手写的 HTML。

如果需要,您可以创建一个混合项目,它是 MVC 和 Web 表单的组合。 Scott 有一篇帖子对此进行了解释here

MVC 中没有 ViewState :)

从 ASP.NET Webforms 切换到 MVC 时,您必须了解的一件重要事情是 MVC 架构试图坚持 HTTP 是无状态的这一事实。 MVC 中没有可用的 viewstate。因此,您需要确保根据需要在每个 HTTP 请求中重新填充数据。人们在 MVC 中加载 DropDownlist 时通常会遇到问题。 SO中有很多answers关于如何处理回发下拉列表(当表单发布时)。

我建议您在 ASP.NET MVC 上查看一些初学者级别的 tutorials 并开始逐步构建您的应用程序,如果遇到任何问题,请发布 (new) 带有相关细节的问题。

祝你好运,欢迎来到 MVC 的精彩世界。 :)

【讨论】:

    【解决方案2】:

    听起来您还没有创建 MVC 项目,而是创建了 WebForms 项目。

    *.aspx 文件是标记,*.aspx.cs 文件是代码隐藏文件。代码隐藏文件处理 *.aspx 文件中任何服务器端控件的 .NET 代码。

    【讨论】:

    • 我所指的 .aspx 和 .aspx.cs 文件来自我提供参考的非 MVC 项目。
    【解决方案3】:

    在 ASP.NET 上查看 Wikipedia 的文档,http://en.wikipedia.org/wiki/ASP.NET

    它说:

    Web 表单包含在扩展名为“.aspx”的文件中;这些文件 通常包含静态 (X)HTML 标记,以及标记定义 开发人员放置的服务器端 Web 控件和用户控件 网页的所有 rc 内容。 此外,在服务器上运行的动态代码可以放在一个 块内页面 ,类似于 其他 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 就不再需要了。从个人经验来看,我在 MVC 中使用了 Razor 和 Webforms (.aspx/.aspx.cs) 视图模型,我发现 Razor 更容易编码/维护和使用。

    【讨论】:

      【解决方案4】:

      aspx 文件包含您的页面标记。由 ASP.NET 自动转换为代码。

      cs 文件包含页面背后的代码(初始化、事件处理程序等)。您必须自己编写该代码。

      这两个文件与继承有关,@Page 指令的 Inherits 属性将页面标记与后面的代码相关联

      【讨论】:

        【解决方案5】:

        .aspx 是您的标记文件。包含 HTML、CSS、JavaScript 和 ASP 标记等内容。 此 .cs 文件称为代码隐藏文件。这是你做的事情可能不可用或者你不习惯用脚本语言做的事情。一般aspx在客户端运行,后面的代码在服务端执行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-28
          • 1970-01-01
          • 2010-10-02
          • 2011-12-12
          • 2010-09-16
          • 2012-03-14
          • 2012-02-06
          相关资源
          最近更新 更多