加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

.net – 在MVC应用程序之间共享视图,逻辑等

发布时间:2020-12-16 03:47:36 所属栏目:asp.Net 来源:网络整理
导读:我们有一个功能齐全的ASP.NET MVC 2应用程序.我正在创建一个MVC 3应用程序,它应该具有与现有应用程序相同的外观和感觉.也就是说,它应该使用相同的导航ascx,页眉和页脚ascx等.现有应用程序的ascx根据模型中的内容填充自己,因此它不仅仅是“我想要带来的UI内容
我们有一个功能齐全的ASP.NET MVC 2应用程序.我正在创建一个MVC 3应用程序,它应该具有与现有应用程序相同的外观和感觉.也就是说,它应该使用相同的导航ascx,页眉和页脚ascx等.现有应用程序的ascx根据模型中的内容填充自己,因此它不仅仅是“我想要带来的UI内容”,它是模型和控制器逻辑也与这些控件有关.

如果没有重构原始应用程序,有没有什么好方法可以做到这一点?我听说过Portable Areas(http://lostechies.com/erichexter/2009/11/01/asp-net-mvc-portable-areas-via-mvccontrib/),但看起来需要一个重要的重构器在现有的应用程序上.我还研究了Razor单文件生成器扩展,它允许我们将视图编译成dll并共享它们,但是,这需要将现有应用程序转换为MVC 3,然后将视图转换为Razor. (而且我仍然不确定那之后它是否一定“容易”.)

我能忽略这里明显的一切吗?感觉应该有一个很好的方法来做到这一点,但也许现有的应用程序只需要一个大的改革. :P

提前致谢!

解决方法

最简单的解决方案可能是更新到MVC3(如果你没有与不能使用.NET 4的东西集成,则是微不足道的),并在将视图移动到共享库时将视图转换为Razor. Razor视图引擎内部与Web窗体视图引擎有许多不同之处,这使得它更容易适应在共享库中使用.

在我自己的项目中,我有预编译的视图引擎处理所有视图,但是设置多个视图引擎很容易,因此将使用第一个查找有效视图的引擎.对于布局,您需要为两个视图引擎保留一个版本,但如果您在将所有视图一次性转换为Razor时遇到问题,那么这不是额外的努力.

共享控制器逻辑非常简单.在共享库中定义控制器,并将其子类化到系统将查找控制器的controllers文件夹中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读