嗨,有人能告訴我如何將PartialView加載到我已準備好位於_Layout.cshtml中的div容器中(它完全獨立於鏈接本身) 。我想把它裝到集裝箱上的以下操作鏈接的點擊:如何在_Layout.cshtml中將部分視圖加載到容器中
<a href="@Url.Action("RenderColorbox", "ContactPartial", new { path = "_ContactPartial" })" class="colorboxLink"><span>ContactUs</span></a>
我想這樣做沒有JavaScript的,因爲我需要建立在我的控制器模型,並把它傳遞給PartialView,我不認爲它可能將強類型模型傳遞給使用JavaScript的視圖。
如果我想我可以使用:
$('.colorboxLink').click(function() {
$('.colorbox_container').load(this.href);
});
,但正如我所說,這並沒有給我創造並傳遞一個強類型的模型局部視圖的機會......我可以其重要創建模型並將其傳遞給視圖,因爲當我在部分視圖中嘗試類似foreach(Model.ItemList中的var項)時,Im獲取空引用異常。
我的繼承人控制器是什麼樣子:
public virtual ActionResult RenderColorbox(string path)
{
return PartialView(path, null);
}
然而,目前,點擊跳轉鏈接只是呈現一個新的空白頁面,而不是我已經建立了容器內的PartialView。
謝謝大家的幫助。
編輯:要加載顏色框我用下面的建議:
$('.colorboxLink').click(function() {
$('.colorbox_container').load(this.href, function() {
var colorboxOptions = {
inline: true,
scrolling: false,
opacity: ".9",
fixed: true,
onLoad: function() {
$('#cboxContent').css({
"background": "white"
});
$('#cboxLoadedContent').css({
"margin-bottom": "28px",
"height": "558px"
});
}
}
$('#contactColorbox').colorbox(colorboxOptions);
});
但仍沒有加載顏色框,而是作爲一個彈出模式。
那麼,如果我要使用javascript load()就像我上面顯示的那麼我會在actionlink上設置onclick =「false」,不是嗎?因爲否則它只是將局部視圖加載到空白的新頁面中。在這種情況下,如果onclick =「false」,RenderColorbox()不會被調用嗎? – parliament 2012-03-15 07:38:12
像魅力一樣工作。非常感謝! – parliament 2012-03-15 07:45:10
@ user1267778,爲什麼當你已經在你的javascript中訂閱它時,爲你的錨添加onclick屬性?也正確的是'onclick =「return false;'',而不是'onclick =」false「'。但不要這樣做。不要混合標記和JavaScript。 – 2012-03-15 07:46:18