【问题标题】:asp.net mvc JavaScript in View User Controls rendered through regular browser request and AJAX request通过常规浏览器请求和 AJAX 请求呈现的 View User Controls 中的 asp.net mvc JavaScript
【发布时间】:2010-02-18 00:51:48
【问题描述】:

我的一些 ASCX 文件中有此代码:

<%=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"
})%>

注意那里的 rel="shadowbox..."。这是为这个 ActionLink 连接 ShadowBox Lightbox 克隆。

当用户通过正常浏览器请求请求包含此用户控件的页面时,这可以正常工作。但我也通过 AJAX 请求渲染/构建那些 View User 控件。例如,我会使用 jQuery .ajax() 方法向 /Widget/RenderToString/... 发出请求,它会返回该控件的 HTML 代码。这可以正常工作,并且可以很好地呈现代码。然后,我会将结果插入(附加)到发出 AJAX 请求的页面中的 DIV 中。这也可以正常工作,并且返回的 HTML 会被附加。唯一的问题是 - ShadowBox 没有连接。即使它的代码被渲染了。

似乎每次连接 ShadowBox 都需要重新加载页面 (F5)。由于我正在执行 AJAX GET 和即时附加以摆脱服务器往返,因此我还希望 ShadowBox 无需刷新即可连接。

有人可以帮我吗?谢谢

更新:

是的,我的 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 调用后再次初始化 Shadowbox?

【问题讨论】:

    标签: asp.net jquery asp.net-mvc ajax shadowbox


    【解决方案1】:

    shadowbox 插件有很多……你用的是哪一个? (如果没有它,我无法给你确切的代码。)无论如何,我想你的$(document).ready(function () { ... }); 中有一些东西告诉影子盒插件绑定自己。您需要在 AJAX 调用之后再次调用它。

    【讨论】:

      【解决方案2】:

      刚刚找到解决办法here

      // call this after adding the new HTML to the page
      // set up all anchor elements with a "editWidget" class to work with Shadowbox
      Shadowbox.setup("a.editWidget", {});
      

      【讨论】:

        猜你喜欢
        • 2012-01-30
        • 1970-01-01
        • 2012-04-14
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 2018-11-09
        • 1970-01-01
        • 2017-05-02
        相关资源
        最近更新 更多