我已经将所有视图放在Visual Studio中它们自己的文件夹中,现在内容不再呈现。我必须从哪里为它们设置渲染路径?
好吧,约定是Umbraco模板位于~/View文件夹中。如果他们住在其他地方,你就失去了后台的工具支持(并混淆了任何其他负责该项目的Umbraco开发人员!)。
但是,如果文件夹名称与文档类型的名称匹配,则可以为每个文档类型创建一个控制器(即劫持路由)。我确信这将允许Umbraco签入子文件夹。
我正在用单核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();
}
}
}