В настоящее время я оцениваю N2 CMS для использования на нескольких веб-сайтах.
Мы бы хотели предложить нашим клиентам только функцию перетаскивания, что означает, что они могут добавлять части в зоны на странице, заполнятьих, и перетащите их вокруг.Функциональность «бэкенда» зоны управления будет зарезервирована для разработчиков.
Поэтому я не использую элемент управления SlidingCurtain для рендеринга.Прямо сейчас я создал пользовательскую панель администратора, которая появляется, когда пользователь с правильной ролью вошел в систему. Обычно скользящий занавес добавляет строку запроса «? Edit = drag» в ваш URL, когда вы нажимаете на функцию «перетаскивания».кнопку, поэтому я добавляю эту строку запроса автоматически после входа в систему.
Если я это сделаю, я получу исключение NullReferenceException для следующей строки: Html.DroppableZone ("H1"). Render ();
На данный момент в этой DroppableZone еще нет частей, и я полагаю, что именно это вызывает эту проблему.Как мне обойти это?
У меня есть следующий H1Controller:
namespace EmptyCMS.Controllers
{
[Controls(typeof(Models.H1))]
public class H1Controller : ContentController<Models.H1>
{
public override ActionResult Index()
{
return PartialView("H1", CurrentItem);
}
}
}
И следующее частичное представление:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Models.H1>" %>
<h1><%= Model.Text %></h1>
И это моя модель:
namespace EmptyCMS.Models
{
[PartDefinition("H1")]
[AllowedZones("H1")]
public class H1 : ContentItem
{
[EditableTextBox("Text", 100)]
public virtual string Text { get; set; }
}
}
Кто-нибудь может заметить, что я делаю не так?Большое спасибо за любую помощь, вы можете дать мне.