gpt4 book ai didi

javascript - 在 MVC 中将分部 View 渲染到布局页面的最佳方式是什么?

转载 作者:行者123 更新时间:2023-11-29 19:10:49 25 4
gpt4 key购买 nike

enter image description here我的 MVC5 项目中有一个布局页面,我想通过单击左侧的菜单链接(超链接)来呈现所有页面内容(部分 View ),如下所示。有一些使用 Ajax 等的方法,但我不确定哪种方法最能满足我的需求。是否有关于此问题的示例包含 Layout 页面和 Controller 方法?

最佳答案

您必须先将正文内容包装在 div 中并为其分配任何 id:

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

现在在脚本菜单点击事件中:

$(".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) {
}
});

});

Controller :

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

关于javascript - 在 MVC 中将分部 View 渲染到布局页面的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38968725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com