嗨,有人能告诉我如何将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