Asp.net mvc 在ASP.NET Web表单项目下使用ASP.NET MVC-最佳实践

Asp.net mvc 在ASP.NET Web表单项目下使用ASP.NET MVC-最佳实践,asp.net-mvc,Asp.net Mvc,目前,我们在现有的asp.net web窗体应用程序中有一个新的菜单项。 为此,我们决定采用MVC。 请注意,我们必须共享相同的母版页、css和Jquery文件。我们目前正计划在我们的aspx页面中呈现div内的视图 有没有更好的方法来实现这一点 我们的方法有哪些局限性 我们可以在这种方法中利用MVC测试用例吗 多亏了MVC是一种无状态、断开连接的体系结构,您不能像aspx.cs那样直接在控制器中访问母版页或aspx控件,其次,不能将经典的asp.net母版页与MVC一起使用 您可以从现有项目中

目前,我们在现有的asp.net web窗体应用程序中有一个新的菜单项。 为此,我们决定采用MVC。 请注意,我们必须共享相同的母版页、css和Jquery文件。我们目前正计划在我们的aspx页面中呈现div内的视图

  • 有没有更好的方法来实现这一点
  • 我们的方法有哪些局限性
  • 我们可以在这种方法中利用MVC测试用例吗

  • 多亏了MVC是一种无状态、断开连接的体系结构,您不能像aspx.cs那样直接在控制器中访问母版页或aspx控件,其次,不能将经典的asp.net母版页与MVC一起使用

    您可以从现有项目中重复使用的内容包括:

    • 用户界面模板(设计)
    • JS文件
    • CSS文件
    • 业务逻辑
    • 数据库

      • 不能使用相同的母版页。不能对webforms视图的某些部分重用ASP.NET MVC,反之亦然。您的视图完全在webforms或ASP.NET MVC上。从理论上讲,甚至在一个web应用程序中混合使用webforms和mvc也可能会有问题,但实际上是可能的(请参见下面的第1点)。所以一般来说,你的问题的答案是否定的

        如果您希望使用ASP.NETMVC,您应该考虑将项目逐步迁移到ASP.NETMVC

        实际上,有两种可能的迁移方式

      • 将ASP.NET web窗体和ASP.NET MVC混合在一个项目中。从技术上讲,这是可能的。但这是某种黑客行为。您的转换将是无缝的,但您无法创建ASP.NET视图。我不推荐。你可以在这里找到这种方法

      • 在一个解决方案中,对webforms和mvc项目使用不同的项目。事实上,这是两个不同的web应用程序,它们通常具有公共身份验证,webforms状态存在问题。要解决身份验证问题,您需要为其创建单独的web服务,两者都将使用该服务。要解决会话状态的问题,请同时使用分布式缓存,并尝试将想法从webforms状态更改为缓存,因为mvc实际上是无状态的。然后,对于特定视图,可以在两个门户的视图之间重定向


      • 不能使用相同的母版页。MVC无法使用Web窗体母版页。