ASP.NET MVC 4 + jQuery地址插件=渲染问题

时间:2013-02-07 12:52:48

标签: jquery asp.net-mvc jquery-address

我正在尝试在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的人仍然可以导航到网站,即使媒体播放器会刷新。

1 个答案:

答案 0 :(得分:0)

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