2013-03-22 3 views
2

안녕하세요. mvc 웹 사이트에서 일관된 모양과 느낌의 레이아웃을 사용하고 있습니다. 이제 내 메뉴는 사용자 역할, 레벨 등을 기반으로 동적으로 생성됩니다. 레이아웃 페이지에서 메뉴를 넣었습니다. 사용자가 메뉴에서 데이터베이스에 대한 역할에 따라 생성됩니다. 사용자가 메뉴를 클릭하면 레이아웃의 대응 뷰를로드하지만, 또한 모든보기가 레이아웃을 갖기 때문에 레이아웃 페이지를 새로 고침합니다. 따라서 메뉴도 다시 데이터베이스에 저장됩니다. 메뉴를 다시로드하지 않으려면 어떻게해야합니까? 레이아웃 버튼을 사용하지 않고 페이지를 다시로드하기 때문에 레이아웃 페이지에서 뷰를로드하는 데 아약스를 사용하고 싶지 않습니다. 제발 도와주세요mvc에서 한 번만 레이아웃 페이지를로드합니다. 4 ASP. NET 면도기

답변

1

은 내가 ajax.and viewstart.chtml 에서 이

레이아웃 다음 작성하여 레이아웃 내부 사업부에 배치하지 않고 페이지를 loded되는 한 일 = Request.IsAjaxRequest()? null : "~/Views/Shared/_Layout.cshtml";

요청이 링크 (새 창)를 통해 표시되는 경우 레이아웃 페이지 (이 새로운 탭 문제 해결)가 표시됩니다.

2) 브라우저의 백 버튼에는 jquery.address 플러그인이 사용되었습니다.

+0

내가 3 시간 이상을 검색 할 수 있습니다! 이것에 대한 라인 코드! 매우 감사드립니다. –

+1

듣기 좋다. 고맙습니다. – amol

0

세션 변수에 대한 일반적인 사용은 사용자와 역할, 레벨 등을 저장하는 것입니다. 세션 저장 위치에 따라 DB 왕복을 피할 수도 있고 피할 수도 있습니다. 예를 들어 "InProc"세션 상태 (기본값)가 메모리에 저장되므로 액세스가 매우 빠릅니다. 참조 : Which one is better, InProc or SQL Server, for Session State mode in asp.net?

+0

나는 당신이 사용자 롤 레벨에 관한 것이 아닌 pronlem.its를 얻지 못한다고 생각한다. 동적으로 생성 된 메뉴를 매번 다시로드하는 것을 피하기 위해 각 메뉴 페이지의 레이아웃 페이지를 다시로드하지 않도록한다. – amol

+0

및 해당 세션에 대한 definitlely 저장! 거기에 데이터베이스 기능은 사용자에게 특정 메뉴 항목을 데이터베이스에 사용자 역할 수준 매핑과 함께 저장 – amol

관련 문제