65.9K
CodeProject 正在变化。 阅读更多。
Home

作为 ASP.NET WebForm 开发人员,您将在 ASP.NET MVC 中失去的东西

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.61/5 (25投票s)

2014 年 8 月 16 日

CPOL

3分钟阅读

viewsIcon

60017

作为 WebForm 开发人员,您将在 MVC 中失去的东西

目录

引言

我一直是 ASP.NET WebForm 开发的忠实拥护者,但过去 2 年来,ASP.NET MVC 却成为了人们谈论的焦点。如果您是 MVC 的新手,请从 这里 开始,如果您想超快速地学习 MVC,请从 这里 开始。

注意:如果 ASP.NET MVC 和 ASP.NET WebForm 的术语让您感到困惑,请在继续之前阅读这篇文章

当我开始 ASP.NET MVC 开发时,作为 ASP.NET Webform 开发人员,我花了很长时间来适应和熟悉 ASP.NET MVC 开发思路。本文将引导您了解在使用 ASP.NET MVC 时需要进行的一些重要的思维方式转变。

没有 CodeBehind

MVC 的整体思路是摆脱后台代码。因为后台代码不可重用,不可测试,所以当您在 MVC 中添加视图/UI 时,您将找不到后台代码。您会找到“.ASPX”,但没有“ASPX.CS”。您会找到 CSHTML,但没有 CSHTML.CS

现在当我们说“没有后台代码”时,这将产生连锁反应。其余的要点是“没有后台代码”概念的后续影响。

没有服务器控件

ASP.NET Webform 服务器控件一直都是救命稻草。它就像魔术一样,您只需拖放即可完成。现在,由于我们没有后台代码,因此工具箱中将看不到服务器控件。您必须使用 HTML 创建 MVC UI。目前官方支持的最大程度是 HTML Helper 类。您可以在 这里 了解有关它的信息。

您可以在 ASPX 视图中使用服务器控件,但并不建议这样做,因为它会生成内联后台代码,从而违背了 MVC 的目的。

没有页面生命周期

由于我们没有后台代码,因此在 ASP.NET MVC 中没有所谓的 页面生命周期。在 ASP.NET Webform 中,第一次点击会到达页面,然后其余的事情发生。ASP.NET Webform 是一种 UI 优先的方法,而 MVC 是一种类优先的方法。

在 MVC 中,第一次点击会到达控制器类,然后到达 UI。因此,页面生命周期的所有逻辑都进入控制器。因此,不再讨论页面生命周期以及需要编写哪个事件的代码。

没有 ViewState

没有自动生成的隐藏字段,例如 viewstate。我们拥有更强大和更精细的会话管理方式:viewdata、tempdata、viewbag 和会话变量。您可以通过 点击这里 了解更多信息。

想在 2 天内学习 MVC,请从这个视频开始。

如需进一步阅读,请观看以下面试准备视频和分步视频系列。

© . All rights reserved.