Asp.net mvc 什么是';页面生命周期';与ASP.NET WebForms相比,ASP.NET MVC页面的?

Asp.net mvc 什么是';页面生命周期';与ASP.NET WebForms相比,ASP.NET MVC页面的?,asp.net-mvc,Asp.net Mvc,与ASP.NET WebForms相比,ASP.NET MVC页面的“页面生命周期”是什么 我正试图更好地理解这个“简单”的问题,以便确定我在一个(非常)简单的网站中的现有页面是否可以轻松地从ASP.NET WebForms转换 我正在寻找的是以下流程的“转换”或替代生命周期 我目前正在做的事情: (是的,我知道任何能够回答我问题的人都已经知道了这一切——我只是想比较一下“生命周期”,所以我想我应该先填写我们都知道的内容) 呈现页面: 我有一个母版页,其中包含我的基本模板 我有一些内容页,这些

与ASP.NET WebForms相比,ASP.NET MVC页面的“页面生命周期”是什么

我正试图更好地理解这个“简单”的问题,以便确定我在一个(非常)简单的网站中的现有页面是否可以轻松地从ASP.NET WebForms转换

我正在寻找的是以下流程的“转换”或替代生命周期

我目前正在做的事情:

(是的,我知道任何能够回答我问题的人都已经知道了这一切——我只是想比较一下“生命周期”,所以我想我应该先填写我们都知道的内容)

呈现页面:

  • 我有一个母版页,其中包含我的基本模板
  • 我有一些内容页,这些内容页从我放入内容的母版页中为我指定了区域
  • 在每个内容页的事件处理程序中,我从数据库加载数据(大部分为只读)
  • 我将这些数据绑定到表示网格、下拉列表或中继器的ASP.NET控件。这些数据在生成的HTML中“存在”。其中一些会进入ViewState(但我不会进入太多!)
  • 我在页面上设置属性或将数据绑定到某些项目,如图像或文本框控件
  • 页面被发送到客户端,呈现为不可重用的HTML
  • 我尽量避免使用ViewState,而不是页面所需的最小值
客户端(不使用ASP.NET AJAX):

  • 我可能会使用JQuery和一些讨厌的技巧在页面上查找控件并对其执行操作
  • 如果用户从下拉列表中选择,则会生成一个回发,从而在我的codebehind中触发一个C#事件。这个事件可能会进入数据库,但不管它做什么,一个全新生成的HTML页面最终都会被发送回客户端
  • 我可以使用Page.Session来存储需要以后重用的键值对

那么,有了MVC,这种“生命周期”是如何变化的呢

我将尝试对您提到的每个要点进行评论:

您的母版页仍然存在于MVC中,用于为站点提供一致的布局。那里没有什么新鲜事

您的内容页将成为MVC世界中的视图。它们仍然为母版页提供相同的内容区域

webforms的eventhandling不应在MVC中使用,相反,您的控制器类及其操作方法将处理将数据加载到传递给视图的“模型”中的操作

虽然webform风格的数据绑定在MVC中是可能的,但我发现它不是最佳解决方案。最好将数据放在模型类中,并强式键入视图,以便直接访问该模型。然后,只需使用
语法访问数据并将其显示在所需位置。至于viewstate,我的建议是忘记它甚至存在

请记住,使用MVC的优点之一是可以控制发送给客户机的HTML。拥抱这种力量,并尝试找到解决方案,让你保持这种控制。Webform控件试图对您隐藏html的内容,因此在需要时更难自定义html

我强烈推荐JQuery或其他类似功能强大的javascript库。但是要学会使用它们直接访问HTMLDOM,避免webform控件的id混乱问题

您可以使用jquery钩住客户端上的下拉选择并提交标准或ajax样式的请求。这些请求可以返回新页面、重定向、html片段甚至可以用于更新现有页面的JSON数据


asp.net会话可以根据需要使用。

感谢您的数据错误回答。实际上是JQuery驱使我回到MVC。我简单地看了一下,然后就不看了(至少现在是这样)。玩JQuery并试图在DOM中查找内容会让我感到非常痛苦,所以我想我应该尝试回到MVC并了解更多MVC页面有一个
模型
属性来访问模型,您不必浏览
ViewData
。我的书签中的一些参考资料强调了请求管道在ASP.NET MVC中的工作方式。这通常会有帮助1。了解ASP.NET MVC本身2。了解MVC提供的不同注入点是什么,并理解它。[页面周期如下:[[1]:页面周期如下: