2012-07-03 16 views
1

局部視圖,當我與這個jQuery加載的局部視圖:所有站點的負載在渲染與jQuery

$.get('@Url.Action("List" , "Menu")', function(data) { 
    $('#treeviewdiv div').replaceWith(data); 
});​ 

所有網站我的網站裏重新裝入。我的意思是另一個頭標籤,另一個身體標籤。

我用這個和它不是工作壓力太大:

$.get('@Url.Action("List" , "Menu") #container', function(data) { 
    $('#treeviewdiv div').replaceWith(data); 
});​ 

...和容器是我的局部視圖內div標籤。

我該如何解決?

+1

偶然是你的Action返回一個'PartialView'? –

回答

2

這通常表示操作返回完整視圖而不是局部視圖。好消息是,這可以簡單地用幾個不同的選項來解決。

1使動作返回一個局部視圖:

public PartialViewResult Menu(){ 
    return PartialView(); 
} 

2如果這是可能通過AJAX或標準方法被稱爲一個動作,它可能有助於基於一個Ajax請求切換:

public ActionResult Menu(){ 
    return Request.IsAjaxRequest() ? PartialView() : View(); 
} 

3的另一種選擇是讓視圖爲您處理它(你可以做到這一點的具體視圖或ViewStart.cshtml文件):

@{ 
    Layout = !IsAjax ? "~/Views/Shared/_Layout.cshtml" : null; 
} 
+0

謝謝,我認爲第一個解決方案對我來說會更好。 – Raika