我的部分视图仍然调用/呈现 _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 = null;
}
这将确保您的视图_Layout.cshtml
,或者如果您具有具有其他名称的主布局,则不会被调用。
给你的另一个建议是使用@Url.Action()
助手来生成 url,而不是使用魔术字符串:
var url = '@Url.Action("Welcome2","ControllerName")';