我的部分视图仍然调用/呈现 _Layout.cshtml

本文关键字:呈现 Layout cshtml 调用 视图 我的部 | 更新日期: 2023-09-27 18:33:56

我有一个MVC5 asp.net C#应用程序。

我开始渲染主页。

现在,当我的用户单击一个按钮时,它会调用一个jquery函数。

此函数的目的是获取第 2 页的 html 内容,并在不刷新整个页面的情况下重新处理第 1 页内容。

所以,在我的_Layout页面中,我有这个 DIV:

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

这将加载我的默认页面。

此默认页面中的 jquery 函数为:

$("#divHomeBanner").click(function () {
    var url = '/Welcome2';
    $('#mainContent').load(url);
});

背后的代码是:

[HttpGet]
[Route("~/Welcome2")]
public ActionResult Welcome2()
{
    return PartialView();
}

我通过加载默认页面进行测试单击菜单选项单击按钮,该按钮将"带我返回"欢迎页面(在本例中称为 Welcome2,是欢迎页面的完整副本)。

我注意到的是,所有资源都再次加载,也就是JavaScript库。

我认为使用部分的全部目的是通过 ajax 渲染内容更改?

这是错的还是我实施错了?

谢谢

我的部分视图仍然调用/呈现 _Layout.cshtml

在您看来,您已经部分添加了以下语句:

@{
 Layout = null;
}

这将确保您的视图_Layout.cshtml,或者如果您具有具有其他名称的主布局,则不会被调用。

给你的另一个建议是使用@Url.Action()助手来生成 url,而不是使用魔术字符串:

var url = '@Url.Action("Welcome2","ControllerName")';