首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >与ASP.NET WebForms相比,ASP.NET MVC页面的“页面生命周期”是什么?

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

Stack Overflow用户
提问于 2009-01-20 04:38:48
回答 1查看 60.1K关注 0票数 160

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

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

下面的流程的‘转换’,或者一个替代的生命周期将是我正在寻找的。

我目前正在做的事情:

(是的,我知道任何有能力回答我的问题的人都已经知道了--我只是想比较一下“生命周期”,所以我想我应该从填写我们都已经知道的内容开始)

呈现页面的

  • 我有一个母版页,其中包含我的基本模板
  • 。我有一些内容页,这些内容页为我提供了从我放入内容的母版页中命名的区域。
  • 在事件处理程序中,我从数据库加载数据(大多数是只读的)。
  • I将此数据绑定到表示网格、下拉列表或中继器的ASP.NET控件。这些数据都“存在”在生成的HTML中。
  • 我设置属性或将数据绑定到页面上的某些项,如ViewState或TextBox控件。
  • 页面被发送到客户端,呈现为不可重复使用的HTML.
  • 我尽量避免使用页面至少需要的ViewState。

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

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

那么在MVC中,这种“生命周期”是如何改变的呢?

EN

回答 1

Stack Overflow用户

发布于 2009-01-20 05:24:54

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

母版页仍然存在于MVC中,用于为站点提供一致的布局。这里没有太多新的东西。

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

不应该在MVC中使用webforms的平均处理,相反,您的控制器类和它们的操作方法将处理将数据加载到传递给视图的“模型”中。

虽然webform风格的数据绑定在MVC中是可能的,但我发现它不是最佳解决方案。最好将您的数据放在模型类中,并强类型您的视图,这样您就可以直接访问该模型。然后,只需使用<%= ViewData.Model.SomeProperty %>语法访问数据并将其显示在所需的位置即可。至于视图状态,我的建议是忘记它的存在。

请记住,使用MVC的优点之一是您可以控制发送给客户端的HTML。拥抱这种力量,试着找到能让你保持这种控制的解决方案。Webform控件试图对您隐藏html,因此,当您需要自定义html时,它会变得更加困难。

我强烈推荐JQuery或者其他功能强大的javascript库。但是要学会使用它们来直接访问HTML DOM,并避免webform控件的id损坏问题。

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

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

票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/460145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档