我有一个MVC5 asp.net c#应用程序。
我开始渲染主页。
现在,当我的用户点击一个按钮时,它会调用一个jquery函数。
此功能的目的是获取第二页的html内容,并使用该内容重新生成第一页内容而不刷新整个页面。
所以,在我的_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,是Welcome的完整副本)。
我注意到的是,所有资源都被重新加载,即JavaScript库。
我认为使用partials的整个意图是通过ajax渲染内容?
这是错的还是我错了?
由于
答案 0 :(得分:2)
在您的视图中,您已将其部分添加到其上:
@{
Layout = null;
}
这将确保您的视图_Layout.cshtml
或者如果您具有其他名称的主布局不会被调用。
另一个建议是使用@Url.Action()
帮助生成网址而不是使用魔术字符串:
var url = '@Url.Action("Welcome2","ControllerName")';