如何在现有的umbraco v6网站上开始使用MVC?

时间:2015-08-03 16:36:19

标签: asp.net-mvc asp.net-mvc-4 umbraco umbraco6

我有一个使用umbraco v6的活跃网站,需要实现一个有很多行为的表单。我似乎无法找到有关如何开始将mvc元素添加到现有站点的详细教程。每个教程要么从创建一个新的MVC项目开始,要么只是告诉你创建控制器,而不是更详细地说,即放置控制器和模型的位置,因为默认情况下它们没有文件夹。我已经尝试添加模型和控制器文件,并且intellisence现在似乎不起作用。我是否只创建一个单独的mvc项目并将其部署为二进制文件?任何帮助将不胜感激。

谢谢,

布兰登

1 个答案:

答案 0 :(得分:0)

几个月前,我们已将Umbraco6-WebForms宏(用户控件)迁移到Umbraco6-MVC宏(部分视图/ SurfaceController)。我不知道你是否有同样的情况,但我可以分享我们所做的事情,我希望这可以帮助你。

我们的解决方案分为多个类库项目,它们包含用户控件或MVC控制器,以及一个编排和编写其他项目的Web项目(使用DI,环境配置等)。

由于WebForms和MVC之间的完全兼容性,我们能够进行一个缓慢的迁移过程"从WebForms到MVC,我们的应用程序在很长一段时间内同时使用两种类型的宏(WebForms和MVC)。

以下是迁移项目和创建MVC宏的步骤。

将WebForm项目更新为MVC

我们按照this article中所述的说明操作。即。

  1. 在每个项目中安装MVC 4(Umbraco 6.x所需)
    • 打开软件包管理器控制台
    • 运行以下命令(我们使用该特定的MVC版本,因为它与Umbraco 6.2.4使用的相同): Install-Package Microsoft.AspNet.MVC -Version 4.0.20710.0
  2. 使用以下命令安装Microsoft ASP.NET Web Optimization Framework以允许编译Razor脚本:Install-Package Microsoft.AspNet.Web.Optimization -Version 1.1.3(请参阅this post
  3. 卸载项目以修改.csproj文件
  4. 插入/添加以下标记(在ProjectGuid下)以启用MVC脚手架

    <ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    
  5. 重新加载项目

  6. 如果缺少,请将这些引用添加到项目中:Umbraco,Microsoft.CSharp(它允许使用像ViewBag这样的动态类型),ClientDependency.Core.Mvc
  7. 创建特定的MVC区域

    此步骤允许我们将旧的webForms部分与同一项目中的新MVC部分分开。此外,VisualStudio脚手架为您创建了很多东西(文件夹,web.config等等)。为此,在项目级别添加新区域(在上述步骤之后,您应该在上下文菜单中使用此选项)

    现在你应该能够使用webforms创建新的MVC代码。

    创建MVC Umbraco模板

    Umbraco允许您定义默认渲染引擎。在混合项目中,您应该在配置文件中有MVC。有关详细信息,请参阅this post。 现在,您可以在Umbraco后台创建新模板。

    应该是一个开始。