2009-09-21 137 views
2

我有一個菜單(與Html.ActionLink作爲菜單選項jquery-ui手風琴)。在選擇菜單選項時,如何在父視圖的主內容<div>中呈現局部視圖?ASP.Net MVC部分視圖

我可以渲染局部視圖,但不在主內容<div>內。我應該在我的菜單選項中使用Html.ActionLink嗎?

+0

它是否給出任何錯誤..如果是的話,你可以請在這裏發佈?如果可能的話,你的代碼也是如此,這將有助於確定問題 – 2009-09-21 07:00:24

回答

2

我不相信行動鏈接會幫助你,但他們是朝着正確方向邁出的一步。

你已經把到迄今爲止播放模式:

link: /articles/sports   Main Area 
link: /articles/local_news 

沿左邊的兩個環節是呈現給頁面正常鏈接你的ActionLinks。點擊後,他們只會回覆到服務器,整個頁面將被清除。

你想要做的就是點擊服務器上的內容,並簡單地在頁面上的某個容器內使用該內容。爲此,您可以使用異步發佈到服務器的onclick處理程序呈現普通鏈接以檢索部分內容,然後可以使用該部分內容來設置主DIV的內容。

例如,這可以在您的瀏覽聲明:

<a href="javascript:{Load('<%= Url.Action("Sports", "Articles") %>');}"> 
    Sports 
</a> 

注意使用Url.Action助手方法來充分利用數據路由到正確形成出站網址。

在客戶端(這使用jQuery的,但任何其他庫或JavaScript將做):

function Load(url) 
{ 
    $.post 
    (
    url, 
    null, 
    function(data) 
    { 
     $("#mainDIV").html(data); 
    }, 
    "html" 
); 
} 

我使用的$.post代替$.get迴避瀏覽器緩存的問題。

+0

謝謝大衛。像魅力一樣工作! – 2009-09-21 07:51:26