MVC4에서 새 웹 사이트를 설정하려고합니다. 어떤 상황에서도 전체 페이지 새로 고침을 피하려고합니다. 목표는 사용자가 사이트를 탐색하는 동안 그대로 유지되는 기본 레이아웃에 미디어 플레이어를 배치하는 것입니다.ASP.NET MVC 4 + jQuery 주소 플러그인 = 렌더링 문제
딥 링크를 사용하려면 jquery 주소 플러그인을 사용하기로 결정했습니다. 액션이 아약스를 통해 호출 된 경우 전체보기가 아닌 부분보기를 반환하도록 컨트롤러에 규칙을 설정했습니다. 또한 요청을 방지하고 대신 ajax 요청을 수행하고 div 내에서 결과를 제공하는 주소 플러그인을 설정합니다.
서버 측
return Request.IsAjaxRequest() ? (ActionResult) PartialView() : View();
클라이언트 측
$.address.state('/').init(function (event) {
$('a').address();
});
$.address.change(function (event) {
$.ajax({
cache: false,
url: event.value,
success: ajaxSuccess
});
});
function ajaxSuccess(data, status) {
$("#mainContent").html(data);
}
문제 : 뷰가 같은 부분에 제공됩니다 때, 내보기 내부에 @section을 렌더링 할 수 없습니다.
추신 : 플러그인을 눈에 거슬리지 않게 사용하고 싶습니다. 자바 스크립트가없는 사람이라면 미디어 플레이어를 새로 고침해도 웹 사이트를 계속 탐색 할 수 있습니다.
답장을 보내 주셔서 감사합니다. 컨트롤러 조건에 대한 부분 뷰 문제를 해결했습니다. 문제는 뷰 내부에 존재하거나 존재하지 않는 @ section의 렌더링과 관련이 있으며, 메인 레이아웃은 뷰가 렌더링되는 div가 아닌 웹 사이트 내의 다양한 위치에서 렌더링합니다. – DrinkBird