diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs index a7a8e7840..8956266f8 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs @@ -242,13 +242,17 @@ namespace Orchard.ContentTypes.Controllers { if (!Services.Authorizer.Authorize(Permissions.CreateContentTypes, T("Not allowed to create a content part."))) return new HttpUnauthorizedResult(); - var partViewModel = _contentDefinitionService.AddPart(viewModel); - if (!ModelState.IsValid) return View(viewModel); - Services.Notifier.Information(T("The \"{0}\" content part has been created.", partViewModel.Name)); + var partViewModel = _contentDefinitionService.AddPart(viewModel); + if (partViewModel == null) { + Services.Notifier.Information(T("The content part could not be created.")); + return View(viewModel); + } + + Services.Notifier.Information(T("The \"{0}\" content part has been created.", partViewModel.Name)); return RedirectToAction("EditPart", new { id = partViewModel.Name }); } diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Services/ContentDefinitionService.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/Services/ContentDefinitionService.cs index 055cb1005..39fe4567a 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Services/ContentDefinitionService.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Services/ContentDefinitionService.cs @@ -184,10 +184,13 @@ namespace Orchard.ContentTypes.Services { while (_contentDefinitionManager.GetPartDefinition(name) != null) name = VersionName(name); - var contentPartDefinition = new ContentPartDefinition(name); - _contentDefinitionManager.StorePartDefinition(contentPartDefinition); + if (!String.IsNullOrEmpty(name)) { + var contentPartDefinition = new ContentPartDefinition(name); + _contentDefinitionManager.StorePartDefinition(contentPartDefinition); + return new EditPartViewModel(contentPartDefinition); + } - return new EditPartViewModel(contentPartDefinition); + return null; } public void AlterPart(EditPartViewModel partViewModel, IUpdateModel updateModel) { diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/CreatePart.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/CreatePart.cshtml index 5a9138e80..3c0d61fad 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/CreatePart.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/CreatePart.cshtml @@ -2,8 +2,9 @@