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

 2023-02-17    372  

问题描述

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

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

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

下面的过程的”转换”,或者替代生命周期将是我正在寻找的.

我目前正在做什么:

(是的,我知道任何能够回答我的问题的人都知道这一切 – 我只是试着比较’Lifecycle’的比较所以我以为我会首先填写我们已经填写了什么所有知识)

渲染页面:

  • 我有一个包含我的基本模板
  • 的主页

  • 我有内容页面,使我从主页面给我命名的地区,我把内容放在其中.
  • 在每个内容页面的事件处理程序中,我从数据库加载数据(主要是只读).
  • 我将此数据绑定到表示网格,下降或中继器的ASP.NET控件.此数据都在生成的HTML内部”生命”.其中一些进入了ViewState(但我不会过分吸引!)
  • I为页面上的某些项目设置属性或将数据绑定到某些项目或页面上的文本框控件.
  • 该页面被发送到客户端作为不可重用的HTML呈现.
  • 我试图避免使用除页面需要的ViewState,而不是最小的.

客户端(不使用ASP.NET AJAX):

  • 我可以使用jQuery和一些令人讨厌的技巧来查找页面上的控件并对它们执行操作.
  • 如果用户从下拉列表中选择 – 将生成回发,这会在Codebehind中触发C#事件.此事件可能会转到数据库,但无论它是一个完全新生成的HTML页面,最终都会被发送回客户端.
  • 我可以使用page.session来存储键值对我需要重用稍后

所以用mvc这个’生命周期’的变化如何?

推荐答案

我将尝试对您提到的每个子弹点发表评论:

您的主页页面仍然存在于MVC中,用于为网站提供一致的布局.没有多少新东西.

您的内容页面将成为MVC世界的视图.它们仍然向您的主页提供相同的内容区域.

WebForms的EventHandling不应在MVC中使用,而是您的控制器类及其操作方法将处理将数据加载到传递到视图的”模型”中.

虽然在MVC中可以进行WebForm样式数据绑定,但我发现它不是最佳解决方案.更好地将数据放在模型类中,并强烈键入您的视图,以便直接访问该模型.然后它只是使用<%= ViewData.Model.SomeProperty %>语法来访问数据并在所需位置显示它.至于ViewState,我的建议是忘记它甚至存在.

请记住使用MVC的一个优点是您可以控制发送给客户端的HTML.拥抱该电源并尝试找到允许您维护该控件的解决方案. WebForm控件尝试从您的HTML隐藏HTML,因此在需要时更难以自定义HTML.

我强烈推荐jQuery或其他类似强大的JavaScript库.但是,学习使用它们直接访问HTML DOM并避免WebForm控件的ID Mangling问题.

您可以使用jQuery挂钩客户端的下拉列表,并提交标准或Ajax样式请求.这些请求可以返回可用于更新现有页面的新页面,重定向,HTML片段甚至json数据.

可以根据需要使用ASP.NET会话.

以上所述是小编给大家介绍的与ASP.NET WebForms相比,ASP.NET MVC页面的'页面生命周期'是什么?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34238.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。