2014-10-02 2 views
1

"_ViewStart.cshtml"을 사용하여 레이아웃을 "Shared/_Layout.cshtml"로 설정하는 RazorViewEngine 사이트 빌드가 있습니다.PartialView [viewname, model]이 (가) 반환됩니까?

public class LogModule : NancyModule 
{ 
    public LogModule() 
    { 
     Get["/log"] = _ => 
      { 
       var list = GetLog().ToPagedList(1, 5); 

       return View["Index", list]; 
      }; 

     Get["/log/{page:int}"] = _ => 
      { 
       int pageNumber = _.page ?? 1; 
       var list = GetLog().ToPagedList(pageNumber, 5); 

       return View["_List", list]; 
      }; 
    } 
} 

그리고 다음보기 :

Index.cshtml

@using Nancy.ViewEngines.Razor 
@using PagedList 
@inherits NancyRazorViewBase<IPagedList<LogModel>> 

<h1>View Log</h1>  
<div id='container'> 
    @Html.Partial("_List", Model) 
</div> 

_List.cshtml

@using Nancy.ViewEngines.Razor 
@using PagedList 
@inherits NancyRazorViewBase<IPagedList<LogModel>> 
<table class="table table-hover table-condensed"> 
    <thead> 
     <tr> 
      <th>Date</th> 
      <th>Message</th> 
     </tr> 
    </thead> 
    <tbody> 
     @foreach (var log in Model) 
     {           
      <tr class="@log.Class"> 
       <td>@log.Date</td> 
       <td>@log.Message</td> 
      </tr>  
     } 
    </tbody> 
    <tfoot> 
     <tr> 
      <td colspan="2"> 
       <div class="pagination" data-current="@Model.PageNumber" data-count="@Model.PageCount"> 
        <ul class="list-unstyled list-inline"> 
         <li><a href="javascript:void(0)" class="pager first">|<</a></li> 
         <li><a href="javascript:void(0)" class="pager prev"><</a></li>    
         <li class="active"><span>@Model.PageNumber/@Model.PageCount</span></li> 
         <li><a href="javascript:void(0)" class="pager next">></a></li> 
         <li><a href="javascript:void(0)" class="pager last">>|</a></li> 
        </ul> 
       </div> 
      </td> 
     </tr> 
    </tfoot> 
</table> 

그리고 마지막으로, 일부 자바 스크립트 그럼, 다음과 같은 모듈을했습니다 '/ log/{page : int}'액션에 대한 ajax 요청을 관리하고 'container'div를 결과로 대체하는 코드입니다. 슬프게도, t 그의 결과에는 _Layout.cshtml을 포함한 전체 페이지가 포함되어 있으며 모든 페이지가 깨졌습니다.

MVC에서이 부분은 return PartialView (viewName, Model)를 사용하여 해결되지만 NancyFx에서 비슷한 것을 찾을 수 없습니다. 내가 빠진 것이 있습니까?

+1

부분보기 및보기 MVC, 단지 별칭에서 동일 :

@RenderBody() 

를 다음 부분보기에서 사용 : 그냥이 한 줄에'빈 '레이아웃 파일을 생성 낸시의 뷰를 반환 할 것입니다. 보기에서 레이아웃을 null로 설정하면 기본 마스터가로드되지 않습니다. – Phill

+0

null로 설정하려고 시도했지만 작동하지 않았습니다. 그러나 비슷한 접근 방식이 효과가 있습니다. 나는 그것을 문제의 해결책으로 언급했다. 어쨌든 고마워! – Farlop

+0

당신이 그것을 분류했기 때문에 기쁘다, 나는 더 나은 해결책이 있다고 확신하지만, 내 머리 꼭대기를 기억할 수 없다. Razor를 공식 릴리스를 사용하도록 업그레이드 한 이후에 새로운 버그가있을 수있다. . – Phill

답변

2

솔루션이 매우 간단하다는 것이 나타났습니다. '당신을

@{ Layout = "Shared/_EmptyLayout"; }