ASP.NET MVC 4+jQuery地址插件=呈现问题



我正试图在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);
    }

问题是:当视图作为分部视图时,我无法在视图中渲染任何@部分。

附言:我希望使用这个插件不引人注目,这样任何没有javascript的人都可以导航到网站,即使媒体播放器会刷新。

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

最新更新