我在我的一些ASCX文件有這樣的代碼:asp.net的MVC的JavaScript在瀏覽用戶控件
<%=Html.ActionLink(Resources.Localize.Routes_WidgetsEdit, "Edit", "Widget",
new { contentType = Model.ContentType, widgetSlug = Model.Slug, modal=true},
new
{
rel = "shadowbox;height=600;width=700",
title = Resources.Localize.Routes_WidgetsEdit,
@class = "editWidget"
})%>
注意到,相對=的「太極拳......」那裏。這是爲此ActionLink連接ShadowBox Lightbox克隆。
當用戶通過普通瀏覽器請求請求包含此用戶控件的頁面時,此工作正常。但我也通過AJAX請求呈現/構建了這些View用戶控件。例如,我會使用jQuery .ajax()方法向/ Widget/RenderToString/...發送請求,並且它會返回該控件的HTML代碼。這工作正常,它呈現代碼罰款。然後,我會將結果插入(附加)到一個頁面中的一個DIV中,從那裏發出AJAX請求。這也可以正常工作,並且返回的HTML被附加。唯一的問題是 - ShadowBox沒有連線。即使它的代碼被渲染。
似乎它每次都需要頁面重新加載(F5)來連接ShadowBox。由於我在做AJAX GET和即時追加以避免必須進行服務器往返,因此我還希望ShadowBox在不刷新的情況下進行連線。
有人可以幫我嗎?謝謝
UPDATE:
是的,我有這個在我的Site.Master頭:
<script src="<%=Url.Content("~/Scripts/shadowbox-build-3.0rc1/shadowbox.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
// insert functions calls here that provide some default behaviour
externalLinks();
});
Shadowbox.init({
language: "en",
players: ["img", "html", "iframe"],
onClose: function() { location.reload(true) }
});
</script>
如何AJAX後重新初始化的太極拳打電話?