2016-06-17 4 views
0

현재 ASP.NET webforms 솔루션을 MVC로 변환 중입니다.ASP.NET MVC에서 뷰의 조회를 구조화하는 가장 좋은 방법은 무엇입니까?

webforms에는 site.master 외에도 공통 코드를 유지하고 각 섹션의 헤드 가져 오기를 유지하는 마스터 페이지가 있습니다. 그래서 일반 페이지 상속과 같이 간다 : MVC에서

Site.master -> section.Master -> page.aspx 

내가 섹션에 공통 코드를 삽입하는 위치에 불분명 해요. 섹션 콘텐츠를 부분보기로 나누는 것이 유일한 해결책입니까? 그렇게 되니? 나는 모든 10 섹션 페이지에서 공유 할 수있는 하나의 CSS 파일을 필요로하는 경우

Layout.cshtml -> page.cshtml -> any-number-of-partial-views 

내가 부분보기에 넣어 각 페이지에 렌더링하지만 매우 효율적으로 생각하지 않는 수, 예를 제공합니다. 아니면이 새로운 작업 방식을 고민해야 할 수도 있습니다.

+0

예를 들어 RenderSections를 찾아 레이아웃에서 부분 뷰를 사용할 수도 있습니다. –

+0

뷰에서 공유되는 모든 CSS 파일에 대한 참조는 _Layout.cshtml에있는 header 태그에 언급되어야합니다. – RBT

답변

0

MVC에서도 sections을 사용할 수 있습니다. 에서

당신의 _Layout.cshtml이 같은있을 수 있습니다 :

@RenderSection("testSection",required:false) 

그리고 당신은 HTML이 섹션에서 렌더링되어야 하는지를 지정하거나 required로 설정되어 있기 때문에 당신이 모두 함께 떠날 수 아이보기

false :

@section testSection{ 

    <h1>Test</h1> 

} 
0

부분보기는 코드를 여러 곳에서 다시 사용하려는 경우 큰 친구가됩니다.

보기> ControllerNameAsFolderName>보기 페이지 (여기에 넣음)에 부분보기를 넣으면 동일한 컨트롤러보기에서만 사용하거나 공유 폴더에서 전체적으로 사용할 수 있습니다.

section은 또 다른 옵션으로 UserControl (웹 양식)입니다. 레이아웃 페이지 섹션 참조 @RenderSection("sectionName", required:false)을 만들고 _Layout.cshtml 페이지에 section를 만들 수 있습니다이 경우, 당신이보기 페이지에서 <head> 내부 (메타 정보를 정기적으로 같은) 뭔가를 넣어한다고 가정

@section sectionName{ 
    <div>content goes here</div> 
} 

처럼보기 페이지에 사용하고 보기 페이지에서 section을 사용하십시오.

이렇게하면 페이지에서 DOM 구조의 특정 위치에 코드를 배치 할 수 있습니다. section에는 required:false/true으로 표시 할 수있는 유용한 기능이 있습니다.

관련 문제