![](/img/trans.png)
[英]Passing a ViewModel to a Partial View call in the Layout.cshtml
[英]My partial view still calls/renders the _Layout.cshtml
我有一個MVC5 asp.net c#應用程序。
我開始渲染主頁。
現在,當我的用戶單擊按鈕時,它將調用jquery函數。
此功能的目的是獲取第二頁的html內容,並用第一頁的內容替換其中的內容,而不刷新整個頁面。
因此,在我的_Layout頁面中,我有這個DIV:
<div id="mainContent">
@RenderBody()
</div>
這將加載我的默認頁面。
此默認頁面中的jquery函數為:
$("#divHomeBanner").click(function () {
var url = '/Welcome2';
$('#mainContent').load(url);
});
后面的代碼是:
[HttpGet]
[Route("~/Welcome2")]
public ActionResult Welcome2()
{
return PartialView();
}
我通過加載默認頁面,單擊菜單選項,然后單擊將“帶我回到”歡迎頁面的按鈕進行測試(在此示例中,該頁面稱為Welcome2,是Welcome的完整副本)。
我注意到的是,所有資源又重新加載為JavaScript庫。
我以為使用partials的全部意圖是通過ajax來呈現內容更改?
這是錯誤的還是我實施錯誤?
謝謝
在您已部分完成的視圖中,在其頂部添加以下語句:
@{
Layout = null;
}
這將確保您的視圖_Layout.cshtml
或您具有其他名稱的主布局不會被調用。
給您的另一個建議是使用@Url.Action()
幫助器來生成url,而不是使用魔術字符串:
var url = '@Url.Action("Welcome2","ControllerName")';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.