2012-05-11 3 views
2

Umbraco 5 (완전 초보자)와 함께 놀고 있으며 현재 표면 제어기 및 매크로를 실험하려고합니다.Umbraco 5 표면 제어기 및 부분 매크로

public class TestSurfaceController : SurfaceController 
{ 
    // 
    // GET: /TestSurface/ 

    [ChildActionOnly] 
    public ActionResult GetTest() 
    { 
     List<Test> test = new List<Test>(); 
     test.Add(new Test { TestTitle = "Test" }); 

     return View(test); 
    } 

} 

그리고 일부 매크로 :

@inherits RenderViewPage 
@using System.Web.Mvc.Html; 
@using Umbraco.Cms.Web; 
@{ 
Layout = "_Layout.cshtml"; 
} 

@section head 
{ 
@Umbraco.RenderMacro("getTest") 
} 

방법 :

@inherits PartialViewMacroPage 
@using Umbraco.Cms.Web 
@using Umbraco.Cms.Web.Macros 
@using Umbraco.Framework 

@model IEnumerable<Umbraco.Models.Test> 

<ul> 
    @foreach (var test in Model) 
    { 
    <li>@test.TestTitle</li> 
    } 
</ul> 

그리고 내 집 템플릿에

, 나는 그것을 호출

나는 기본적인면 컨트롤러를 만들었습니다 내가 ul에 테스트를 표시하도록 할 수 있습니까? 나도 모델이 사용되면 상속을 사용할 수 없다는 오류가 발생합니다. 상속을 제거하면 제공된 모델이 예상과 다름을 알리는 메시지가 나타납니다.

답변

2

@inherits RenderViewPage 작업면 제어기 동작 및 부분 뷰의 예제를 게시하려면이 부분을 페이지에서 제거하십시오. 도움이되는 희망은 입니다. 작업 예

public class MDSSurfaceController : SurfaceController 
{   
    public MDSSurfaceController(IRoutableRequestContext routableRequestContext) 
     : base(routableRequestContext) 
    { 
    } 
    [ChildActionOnly] 
    public PartialViewResult ApartmentListMacro(string apartmentType, string Name, string PropertyRfDicItem, string RatesperNightDict, string SleepsDict, string BedroomsDict, string BathroomsDict, string ViewDict) 
    { 
     ApartmentListModel apM = new ApartmentListModel(); 
     //initialize model   
     return PartialView(apM); 
    } 

그런 다음 내 부분보기 내가 그걸 빼앗아 경우에, 나는 오류가 뷰가 하나 개의 모델을 기대한다는 얻을 수 있지만, 다른 무언가를 가지고

@using Umbraco.Cms.Packages.SystemInfo.Models 
@model Umbraco.Cms.Packages.SystemInfo.Models.ApartmentListModel 
@{ 
//Html Code 
} 
+0

, 아래입니다. – Paul

+0

나는 내 대답을 업데이트했다. 도움이 되길 바랍니다. – Sher

+0

대단히 감사합니다 .-) – Paul