2011-09-30 2 views

답변

3

확실히. 컨텍스트에 대한 질문이 다소 모호하므로 가정 할 것입니다. 나는 당신이리스트를 만드는 컨트롤러 액션을 가지고 있다고 가정 할 것이다 (블로그가하는 것과 비슷하다). 액션에서 다음과 같은 코드로 목록 모양을 만듭니다.

var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); 
var things = _someServiceClass.GetThings(something) 
    .Skip(pager.GetStartIndex()).Take(pager.PageSize)) 
    .Select(p => Shape.Thing_Summary(
     Thing: p, 
     SomethingElseThatIsRelevantToTheTemplate: foo)); 

Shape list = Shape.List(Pager: pager); 
list.AddRange(things); 
list.Metadata.Alternates.Add("list_things"); 

return new ShapeResult(this, list); 

끝 부분 근처에 선이 보이나요? 그것은 대체물을 추가하는 것이므로 테마의보기 폴더에 list.things.cshtml이라는 파일을 작성하여 특정 목록에 대한 특정 템플리트를 빌드 할 수 있습니다.

+0

절대적으로 유용한 팁 ... 호출기가 있고 호출기를 재정의하지 않고 결과 목록에 대체 기능을 제공하려는 경우이 기능이 필요합니다. – manudea

+0

btw : probaly 호출기는 대체 자격이 있습니다 : list.Metadata.Alternates.Add ("pager"); – manudea

관련 문제