2011-03-29 5 views
1

현재 여러 웹 사이트에서 사용하기 위해 N2 CMS를 평가하고 있습니다.N2 NullReferenceException "Html.DroppableZone ("h1 "). Render()"

고객에게 '드래그'기능 만 제공하여 페이지의 영역에 부품을 추가하고, 채우고, 드래그 할 수 있습니다. 관리 영역의 "백엔드"기능은 개발자를 위해 예약됩니다.

따라서 SlidingCurtain 컨트롤을 사용하여 렌더링하지 않습니다. 지금은 올바른 역할을 가진 사용자가 로그인 할 때 나타나는 사용자 지정 관리자 패널을 만들었습니다. 일반적으로 슬라이딩 커튼은 '드래그'기능을 클릭하면 URL에 "? edit = drag"쿼리 문자열을 추가합니다 버튼을 클릭하면 로그인 후 자동으로이 쿼리 문자열을 추가합니다.

이렇게하면 다음 줄에 NullReferenceException이 발생합니다. Html.DroppableZone ("H1"). Render();

이 순간부터이 DroppableZone에는 아직 부품이 없으며 이것이이 문제의 원인이라고 생각합니다. 이 문제를 어떻게 해결할 수 있습니까?

namespace EmptyCMS.Controllers 
{ 
    [Controls(typeof(Models.H1))] 
    public class H1Controller : ContentController<Models.H1> 
    { 
     public override ActionResult Index() 
     { 
      return PartialView("H1", CurrentItem); 
     } 
    } 
} 

그리고 다음 partialview :

나는 다음과 같은 H1Controller이

<%@ 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; } 
    } 
} 

사람이 내가 뭘하는지 발견 할 수 잘못된? 당신이 내게 줄 수있는 도움을 많이 주셔서 감사합니다.

+0

그것은 밖으로 N2 소스 코드를 얻을하는 데 도움이 될 수 있습니다 자신의 [GitHub의 (https://github.com/n2cms/n2cms) 및 그 빌드에 대해 실행 어디가 잘못 됐어. 나 혼자 미안 지역을 사용한 적이 없다 – Rup

+0

고마워. 나는 그것을 정확하게 끝내었다. –

+0

계속 : 존 내부에 부품이 없으면 코드에 문제가있는 것처럼 보입니다. 하지만 나는 이것이 맞을 수 없다고 생각합니다. –

답변

0

null을 확인 하시겠습니까? 정확히보고로 단계 수

var zone = Html.DroppableZone("H1"); 
if(zone != null) 
    zone.Render(); 
+0

이것은 똑같은 문제를 일으 킵니다. 그런 다음 "zone.Render()"행에 NullReferenceException이 발생합니다. 다른 아이디어가 있습니까? –

+0

이것은 NRE가'Render' 메소드 안에 던져진다는 것을 의미합니다. 나는 asp.net MVC 나 N2를 모르기 때문에 당신을 여기에서 더 이상 도울 수 없다. –