我目前正在评估用于多个网站的 N2 CMS。
我们只想为我们的客户提供“拖动”功能,这意味着他们可以将部分添加到页面上的区域,填写它们,然后拖动它们。管理区的“后端”功能将保留给开发人员。
因此,我不使用 SlidingCurtain 控件进行渲染。现在,我已经制作了一个自定义管理面板,当具有正确角色的用户登录时会显示该面板。通常,当您单击“拖动”功能时,Sliding Curtain 会在您的 URL 中添加一个“?edit=drag”查询字符串按钮,所以我在登录后自动添加了这个查询字符串。
如果我这样做,我会得到一个 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; }
}
}
谁能发现我做错了什么?非常感谢您能给我的任何帮助。