我希望我的网络应用程序的行为类似于“单页面应用程序”,因为整个屏幕在每个页面加载之间不会变白,而是按照以下方式呈现页面的新部分:
<div id="mainSection">
<!-- Render individual pages -->
@RenderBody()
</div>
以及我_Layout.cshtml
页面上的链接:
<li>@Html.ActionLink("Some Page", "Index", "Page")</li>
现在另一点是应用程序似乎只在Firefox中正常运行。该应用程序不会在Firefox中执行整页重新加载,但在Chrome或IE中它会执行。该应用程序在IIS上运行。
答案 0 :(得分:3)
@Html.ActionLink
只是一种辅助方法,可以创建一个指向特定控制器和操作的URL的链接(因此您不必在任何地方对URL进行硬编码。)
它产生的链接与其他链接非常相似:
<a href="/Page/Index">Some page</a>
所以预计点击它应该会在浏览器中加载该页面,即使它是您已经在的页面。 (就像你一遍又一遍地点击stackoverflow标志 - 它会继续重新加载同一页面。)
奇怪的是它 在Firefox中重新加载。你确定它不仅仅是加载速度快吗?
当您的其中一个视图使用布局时,布局中的@RenderBody()
会告诉它在布局中渲染视图的位置。这只是指定您的页面如何适应布局,但它并不意味着唯一的部分将重新加载。
尝试this link了解您实际尝试做的事情。
<div>
的内容。这样页面永远不会刷新,而只是其中的一部分会更新。
然后有各种各样的JavaScript库,比如AngularJs,可以为你自动化。但是我建议让你自己的第一个测试用例正常工作,这样你就可以看到它是如何发生的,然后继续进行其他工作。