【问题标题】:ASP.Net MVC run JavaScript in PartialView when loaded using Ajax.ActionLinkASP.Net MVC 在使用 Ajax.ActionLink 加载时在 PartialView 中运行 JavaScript
【发布时间】:2009-12-03 15:26:27
【问题描述】:

我有一个关于 ASP.Net MVC 的问题。

我正在使用 Ajax.ActionLink 来加载 PartialView。

在这个局部视图中是一个我想要调用的 javascript 函数。

但是我不知道如何做到这一点。

我在设置 Ajax.ActionLink 时尝试使用 AjaxOptions { OnSuccess="functionInPartialView" },但由于某种原因它看不到 Javascript。

编辑:PartialView 是 JavaScript 和 Html 的混合体

【问题讨论】:

  • 看不到javascript是什么意思。它没有在页面中呈现,或者没有被调用。
  • 它没有被调用。我已经尝试了许多不同的方法来让它着火。我发现唯一可行的方法是使用 jquery ajax 调用加载 PartialView

标签: asp.net-mvc ajax partial-views


【解决方案1】:

我建议使用 jQuery ($.get/$.ajax)。它在您加载部分时评估 $(function(){}) ,因此您的脚本在那里触发。而且我个人觉得 jQuery 使用起来更简单、更干净。

【讨论】:

  • 是的,你是对的。我最终诉诸于此,而且效果很好。欢呼
【解决方案2】:

在将包含 parcialview 的视图中添加 javascript 代码,然后在设置 Ajax.ActionLink 时使用 ajaxOptions { OnSuccess="functionInView" }。

【讨论】:

    【解决方案3】:

    如果您的局部视图中只有 javascript,那么您应该使用 JavaScript 操作结果,如 post

    否则,问题在于 ajax 仅仅将内容加载到 div 中并不意味着它会执行。在您的 ajax 回调中,您需要找到 javascript 内容并对其进行评估,以便您的页面知道函数定义。

    我知道这是一个高级描述,但我没有任何这样做的示例。如果您发布一些代码,也许有人可以建议一种更简洁的方法,以便您更好地访问脚本。

    【讨论】:

    • 不幸的是,它不仅仅是 javascript。对不起,我应该说得更清楚
    【解决方案4】:

    你可以试试Multipartials,你可以用它们来更新多个视图,甚至从部分运行脚本,我不确定确切的细节,因为它已经有一段时间了,但你可以看看它,看看它是否可以完成你正在寻找的东西

    【讨论】:

      猜你喜欢
      • 2012-02-05
      • 2014-01-09
      • 2016-04-04
      • 1970-01-01
      • 1970-01-01
      • 2015-01-29
      • 2018-02-10
      • 2021-08-10
      • 1970-01-01
      相关资源
      最近更新 更多