2013-02-07 24 views
0

我試圖建立在MVC4一個新的網站,避免在任何情況下刷新整個頁面。目標是讓主媒體播放器在用戶導航到網站時完整無損。ASP.NET MVC 4個+的jQuery插件地址=渲染問題

我決定使用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仍然可以瀏覽到,即使媒體播放器會刷新網頁。

回答

0

你應該重新設計頁面有一個單獨的行動可調換的內容,這總是一個局部視圖。這樣,更改的內容就不在主要內容中。主要內容可以包含這些部分,並且子內容是在發生任何請求時被替換的內容。

+0

謝謝你的回覆!我用控制器條件解決了局部視圖問題。問題與@ section的渲染有關,視圖內可能存在也可能不存在,並且主佈局在網站內的各個位置渲染它們 - 而不是渲染視圖的div。 – DrinkBird