【问题标题】:Can a new MVC page inherit functionality from an existing Web Form page?新的 MVC 页面能否继承现有 Web 窗体页面的功能?
【发布时间】:2014-06-14 17:08:26
【问题描述】:

我目前正在开发一个使用 webforms 模型建立的网站。但是,特别是有一页使用 MVC 模型更容易开发。我知道可以通过一些配置混合这两种类型。我的问题是:是否可以使用 MVC 模型创建此页面,但可以从 Webform 继承?

例如,如果我要在普通的 webforms 页面中创建此页面,我只需设置:

    public partial class NewPage : HomeBasePage

由于站点中的所有其他页面都使用 HomeBasePage(网络表单),因此我担心在 MVC 中创建新页面并在继承中保持一致是否会成为问题。

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-4 webforms


    【解决方案1】:

    没有。

    MVC 和 WebForms 是两个完全不同的模型,它们的工作方式不同。 WebForms 使用“基于页面”的系统,而 MVC 使用“基于控制器”的系统。这意味着 MVC 没有页面。它有动作。

    这是一个根本的区别,这也是 WebForms 有代码背后的原因,而 MVC 将操作与视图分开。

    更根本的是,WebPages 继承自 Page 类。 MVC 动作继承自 Controller。它们是完全不同的,你无法混合它们。此外,MVC 和 WebForms 遵循非常不同的页面生命周期,并且具有非常不同的执行管道。

    然而,

    您没有提供有关 HomeBasePage 实际功能的足够信息。也许有某种方法可以以不同的方式重用其中的某些功能,但在不知道那是什么的情况下……我们无法告诉您任何事情。

    【讨论】:

    • 我明白了。这很有意义。 HomeBasePage 通过处理导航栏、用户登录栏以及确保用户经过身份验证来为网站搭建舞台。
    • @user3734945 - 听起来您当前的网络表单应用程序做错了事。您永远不应该在基本页面中进行身份验证,它应该通过框架(或 global.asax 中的 Application_Authenticate/AuthorizeRequest)来完成。你会为你完成你的工作。
    猜你喜欢
    • 2016-04-23
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 2013-08-24
    • 2019-12-23
    • 2012-11-07
    • 2018-07-19
    • 1970-01-01
    相关资源
    最近更新 更多