사용자가 페이지 왼쪽의 패널에있는 MVC 웹 앱에 검도 트리를 표시하도록 요청했습니다. 그들은 왼쪽 패널이 모든 화면에 나타나기를 원합니다. 나는 나무의 내용을 얻을 뷰에 모델을 결합하는 데이터베이스 호출을 해당 작업의 내부_Layout 페이지에서 TreeView 데이터를 한 번만로드하는 방법
<div>
@{Html.RenderAction("GetTree", "Tree");}
</div>
: 현재
나는 검도 트리를 렌더링 내 _Layout.cshtml 페이지의 섹션을
분명히이 패턴을 사용하면 _Layout에있는 모든 페이지가 호출되고 트리 데이터가 데이터베이스에서 다시 페치됩니다. 이것은 매우 효율적이지 않습니다.
단일 데이터베이스 호출 만 가능하도록 더 좋은 방법은 무엇입니까?
모든 페이지 및 모든 사용자에 대해 트리의 내용이 동일합니까? –
if (TreeViewItemModel == null)을 어딘가에 넣습니다.로드 된 곳에서 어떤 유형의 캐시를 통합합니다. –