diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs index 54fd749f1b..24be0b942c 100644 --- a/src/Umbraco.Web/Editors/ContentController.cs +++ b/src/Umbraco.Web/Editors/ContentController.cs @@ -1426,19 +1426,23 @@ namespace Umbraco.Web.Editors contentSave.PersistedContent.ExpireDate = contentSave.ExpireDate; contentSave.PersistedContent.ReleaseDate = contentSave.ReleaseDate; - //only set the template if it didn't change - var template = Services.FileService.GetTemplate(contentSave.TemplateAlias); - if (contentSave.PersistedContent.TemplateId != template.Id) + // If the template was set. + if (contentSave.TemplateAlias != null) { - if (template == null && contentSave.TemplateAlias.IsNullOrWhiteSpace() == false) + //only set the template if it didn't change + var template = Services.FileService.GetTemplate(contentSave.TemplateAlias); + if (contentSave.PersistedContent.TemplateId != template.Id) { - //ModelState.AddModelError("Template", "No template exists with the specified alias: " + contentItem.TemplateAlias); - Logger.Warn("No template exists with the specified alias: {TemplateAlias}", contentSave.TemplateAlias); - } - else - { - //NOTE: this could be null if there was a template and the posted template is null, this should remove the assigned template - contentSave.PersistedContent.TemplateId = template.Id; + if (template == null && contentSave.TemplateAlias.IsNullOrWhiteSpace() == false) + { + //ModelState.AddModelError("Template", "No template exists with the specified alias: " + contentItem.TemplateAlias); + Logger.Warn("No template exists with the specified alias: {TemplateAlias}", contentSave.TemplateAlias); + } + else + { + //NOTE: this could be null if there was a template and the posted template is null, this should remove the assigned template + contentSave.PersistedContent.TemplateId = template.Id; + } } } } diff --git a/src/Umbraco.Web/Models/Mapping/DefaultTemplateResolver.cs b/src/Umbraco.Web/Models/Mapping/DefaultTemplateResolver.cs index 07965382f0..a84de9257b 100644 --- a/src/Umbraco.Web/Models/Mapping/DefaultTemplateResolver.cs +++ b/src/Umbraco.Web/Models/Mapping/DefaultTemplateResolver.cs @@ -1,5 +1,6 @@ using AutoMapper; using LightInject; +using System.Web.Mvc; using Umbraco.Core.Models; using Umbraco.Core.Services; using Umbraco.Web.Models.ContentEditing; @@ -8,25 +9,20 @@ namespace Umbraco.Web.Models.Mapping { internal class DefaultTemplateResolver : IValueResolver { - /// - /// Gets or sets the services context. - /// - [Inject] - public ServiceContext Services { get; set; } - public string Resolve(IContent source, ContentItemDisplay destination, string destMember, ResolutionContext context) { + var fileService = DependencyResolver.Current.GetService(); if (source == null) return null; // If no template id was set return default template. if (source.TemplateId == 0 && !string.IsNullOrWhiteSpace(source.ContentType.DefaultTemplate?.Alias)) { - var defaultTemplate = Services.FileService.GetTemplate(source.ContentType.DefaultTemplate.Alias); + var defaultTemplate = fileService.GetTemplate(source.ContentType.DefaultTemplate.Alias); return defaultTemplate.Alias; } - var template = Services.FileService.GetTemplate(source.TemplateId); + var template = fileService.GetTemplate(source.TemplateId); return template.Alias; }