我正在尝试在 MVC4 中设置一个新网站,避免在任何情况下刷新整页。目标是在主布局上有一个媒体播放器,在用户导航到站点期间将保持不变。
我决定使用 jquery 地址插件来使用深度链接。如果通过 ajax 调用该操作,我为我的控制器设置了一条规则以返回部分视图而不是完整视图。我还设置了地址插件来阻止请求,改为执行 ajax 请求,并在 div 中提供结果。
服务器端
return Request.IsAjaxRequest() ? (ActionResult) PartialView() : View();
客户端
$.address.state('/').init(function (event) {
$('a').address();
});
$.address.change(function (event) {
$.ajax({
cache: false,
url: event.value,
success: ajaxSuccess
});
});
function ajaxSuccess(data, status) {
$("#mainContent").html(data);
}
问题:当视图用作部分视图时,我无法在视图中呈现任何@section。
PS:我想使用插件作为不显眼的,所以即使媒体播放器会刷新,任何没有 javascript 的人仍然可以导航到该网站。