0

我正在尝试在 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 的人仍然可以导航到该网站。

4

1 回答 1

0

您应该重新设计页面以在单独的操作中包含可交换的内容,这始终是部分视图。这样,更改的内容就在主要内容之外。主要内容可以有部分,子内容是在任何请求发生时被替换的内容。

于 2013-02-07T13:18:01.917 回答