2013-10-27 74 views
0

爲簡潔起見,我簡化了以下內容。操作返回PartialView而不是查看

當我單擊動作鏈接時,動作成功,但只返回自己頁面上的局部視圖,而不是在視圖內渲染它。任何建議,我哪裏出錯了?

PartialView ActionLink的

@Html.ActionLink("Click", "_Partial1") 

控制器

public ActionResult Index() 
{ 
    return View() 
} 

public ActionResult _Partial1() 
{ 
    ...do stuff 
    return PartialView(); 
} 
+0

好像你正在尋找AJAX相關的東西,如果你希望它在視圖中渲染,或者修改你的視圖以使用'Html.Render(「_ Partial1」)',所以它加載視圖。 –

回答

0

您可以使用 「點擊」,如下圖。確保你有參考jQuery

<script type="text/javascript" src="/Scripts/jquery-1.8.2.min.js"></script> 

修改您的動作鏈接如下。

@Html.ActionLink("Click",       // linkText 
        "_Partial1",      // actionName 
        null,       // controllerName 
        new { @class = "detailsLink" } // htmlAttributes 
        ) 

提供您想要呈現內容的元素。

< DIV ID = 「細節」/>

調用下面JS,所以內容將在視圖或類似被加載。

$(function() { 
     $('.detailsLink').click(function() { 
     $('#details').load(this.href); 
     return false; 
     }); 
    }); 

這應該調用你的部分動作,並呈現在同一頁面上的內容。

+0

謝謝拉吉,看起來像是在正確的方向邁出的一步,但仍然返回相同的結果。我需要做更多嗎? – user1405195

+0

此代碼適用於我。這可能是其他一些代碼/腳本干擾。你稱哪個視圖爲局部視圖?你也運行其他可能干擾的腳本嗎?找出最好的方法,刪除代碼中的所有內容,並嘗試應用我的解決方案。如果它可以工作,則添加這些位,直到您可以重新創建問題。如果這仍然不起作用,請使用標準的vanilla asp.net mvc應用程序,並使其與我的解決方案一起工作。根據我的解決方案的工作原理,你發佈了你的問題。還要確保你有jQuery的參考。確保你返回一個局部視圖。 – Spock

相關問題