Asp.net 避免重新加载整个页面

Asp.net avoid reload entire page

我在 ASP.NET MVC 4 应用程序中有一个母版页。母版页有一个包含多个项目的菜单,每个项目都是一个 link 页面。

菜单是 jQuery 手风琴菜单。当我 select 一个项目时,整个页面被重新加载并且手风琴菜单 return 到原始状态。

为了避免这种情况,我存储了最后打开的菜单并将其存储到菜单的 header 的属性中。在 $(document).ready 事件上,我循环 headers 并激活菜单,但这会产生丑陋的效果。

如何避免重新加载整个页面?我必须在母版页的 ContentPlaceHolder 的 MainContent 中使用更新面板吗?有例子吗?

我建议使用 Ajax 方法。您可以在这里找到教程:

http://www.codeproject.com/Tips/886473/Implementing-AJAX-in-ASP-NET-MVC

由于您已经在使用 jQuery,另一种选择是使用 $.get()。您可以找到很多与该方法相关的教程,例如 this.

要在 'normal' 调用您的操作和 ajax 调用之间返回数据时有所不同,请使用:

if (Request.IsAjaxRequest()) return PartialView("_Index", VM);
return View(VM);

部分不包括布局。否则你可能会得到一个带有多个顶部栏的看起来很有趣的页面。