working section scripts partialview not net mvc from asp and javascript jquery asp.net-mvc razor asp.net-mvc-partialview

javascript - section - ¿Cuál es la mejor manera de convertir PartialView a una página de diseño en MVC?



render partial view mvc 5 (1)

Hay una página de diseño en mi proyecto MVC5 y quiero MVC5 todos los contenidos de la página (vistas parciales) haciendo clic en enlaces de menú (hipervínculo) en el lado izquierdo como se muestra a continuación. Hay algunos métodos que usan Ajax , etc. pero no estoy seguro de qué enfoque satisface mejor mis necesidades. ¿Hay algún ejemplo relacionado con este problema que contenga la página Layout y los métodos del Controller ?


Primero debe envolver el contenido de su cuerpo en div y asignarle cualquier ID:

<div id="divContentArea"> @RenderBody() </div>

Ahora en el menú de Script, haga clic en evento :

$(".menuLinkItem").click(function (e) { e.preventDefault(); var controllerName = $(this).attr(''data-controllername''); var actionName = $(this).attr(''data-actionname''); if (String(actionName).trim() == '''') { return false; } if (typeof (controllerName) == "undefined") { return false; } var url = "/" + controllerName + "/" + actionName; //Open url in new tab with ctrl key press if (e.ctrlKey) { window.open(url, ''_blank''); event.stopPropagation(); return false; } $.ajax({ url: url, type: ''POST'', success: function (data) { var requestedUrl = String(this.url).replace(/[&?]X-Requested-With=XMLHttpRequest/i, ""); if (typeof (requestedUrl) == "undefined" || requestedUrl == ''undefined'') { requestedUrl = window.location.href; } // if the url is the same, replace the state if (typeof (history.pushState) != "undefined") { if (window.location.href == requestedUrl) { history.replaceState({ html: '''' }, document.title, requestedUrl); } else { history.pushState({ html: '''' }, document.title, requestedUrl); } } $("#divContentArea").html(data); }, error: function (xhr) { } }); });

Controlador:

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)] public PartialViewResult Index() { if (HttpContext.Request.HttpMethod == "GET") { return View(); } else { return PartialView(); } }