Umbraco 7:引用/设置单独文件夹中视图的路径

时间:2014-09-01 11:26:13

标签: asp.net asp.net-mvc umbraco umbraco7

我已将所有观看次数放在Visual Studio中的自己的文件夹中,现在内容不再呈现了。我从哪里设置渲染路径?

2 个答案:

答案 0 :(得分:1)

嗯,惯例是Umbraco模板位于〜/ View文件夹中。如果他们住在其他任何地方,你就会失去后台的工具支持(并混淆任何其他接受该项目的Umbraco开发人员!)。

但是,如果文件夹名称与文档类型的名称匹配,则可以为每种文档类型创建一个控制器(即劫持路由)。我相信这会让Umbraco检查子文件夹。

答案 1 :(得分:1)

我正在做一个单核Umbraco 7的多站点。这就是我现在正在处理的问题:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;
using Umbraco.Core;
using Umbraco.Web.Mvc;
using Umbraco.Core.Logging;

namespace MyApp.UmbracoExtensions.Shared.Events
{
    public class RegisterCustomViewEngine : ApplicationEventHandler
    {
        protected override void ApplicationStarting(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
        {
            ViewEngines.Engines.Add(new CustomViewEngine());

            base.ApplicationStarting(umbracoApplication, applicationContext);
        }
    }

    public class CustomViewEngine : RazorViewEngine
    {
        private static string[] NewViewFormats = new[] {
            "~/Views/SomeFolder/{0}.cshtml",
            "~/Views/AnotherFolder/{0}.cshtml",
            "~/Views/Wiki/{0}.cshtml"
        };

        public CustomViewEngine()
        {
            base.ViewLocationFormats = base.ViewLocationFormats.Union(NewViewFormats).ToArray();
        }
    }
}