1

私は現在、複数のWebサイトで使用するためにN2CMSを評価しています。

クライアントに「ドラッグ」機能のみを提供したいと考えています。つまり、クライアントはページ上のゾーンにパーツを追加し、それらに入力して、ドラッグすることができます。管理ゾーンの「バックエンド」機能は、開発者用に予約されています。

したがって、SlidingCurtainコントロールを使用してレンダリングすることはありません。今、正しい役割のユーザーがログインしたときに表示されるカスタム管理パネルを作成しました。通常、スライドカーテンは、「ドラッグ」機能をクリックすると、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; }
    }
}

誰かが私が間違っていることを見つけることができますか?あなたが私に与えることができるどんな助けにも感謝します。

4

1 に答える 1

0

nullをチェックするだけですか?

var zone = Html.DroppableZone("H1");
if(zone != null)
    zone.Render();
于 2011-03-29T10:41:25.793 に答える