【问题标题】:Old webform page in MVC masterpage for quick conversionMVC 母版页中的旧 Web 表单页面,用于快速转换
【发布时间】:2012-09-24 13:51:18
【问题描述】:

我想知道是否有人有使用带有 MVC MasterPage 甚至更好的 Razor _Layout 页面的 web 表单页面的经验。

公司希望转换为 MVC,但他们不想感到任何痛苦,他们希望能够非常轻松地改造旧页面。在对基础设施和可扩展性的投资进行了典型的抱怨之后,我意识到我需要将它们放到平台上,然后慢慢地将它们融入现代时代。这不是最佳的,但它是在门口。

所以我希望我可以将母版页(页眉、菜单、页脚)构建到 MVC 中(实际上已经有了),然后从他们的 web 表单页面中删除母版页并将它们加载到 MVC 布局或母版页中。

我认为我可以使用 ajax 来做到这一点,但我真的希望不必为此编写布线,因为 a)他们会认为这是开销和 hacky(我同意)和 b)有很多旧页面,我不想永远在它上面。 任何想法或经验将不胜感激, 回复

【问题讨论】:

  • WebForms 和 MVC 是非常不同的 Web 开发方法。除了将所有页面重写为视图和代码作为控制器之外,实际上没有“转换过程”。有些人已经成功了combining web forms and MVC within the same site,这可能是一个更好的选择,因为它允许您一次重写一页。

标签: asp.net-mvc razor webforms master-pages


【解决方案1】:

您可以尝试使用 HttpHandler 或 HttpModule 并在请求放置部分的末尾通过 replace("[SECTION_NAME]", getSection)。在 MVC 中,您可以从 vew 和模型中生成 html,但为此您需要执行对服务器的请求。所以我认为如果你缓存这部分会更好......像那样。

【讨论】:

    【解决方案2】:

    好吧,很明显,这是一个愚蠢的差事。前提是合理的,将他们的常规页面放入 mvc 母版页,然后您就有足够的支持继续前进。但这是一个巨大的痛苦,甚至可能不可行。也许将来当他们在 MVC 中同化 WebForms 时,这是他们的计划,虽然我看不出它是如何可能甚至是可取的,但不是现在。

    我得到了this post 的一些帮助。它实际上在 MVC 中加载了页面(必须是 webforms,而不是 razor)MasterPage。但是当 WebForm 这样做时,它调用控制器而不是页面是荒谬的“回发”伪事件。那时我举手决定走政治路线而不是走后门路线。

    就像我说的那样,这在未来可能是可能的,如果你真的想挖掘,今天可能是可能的,但是正如切割和讽刺的 cmets 指出的那样,一开始这是一个愚蠢的想法。

    R

    【讨论】:

      猜你喜欢
      • 2015-01-03
      • 2012-01-23
      • 1970-01-01
      • 2019-12-01
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      相关资源
      最近更新 更多