【问题标题】:How to reference outside javascript in a Partial View called by ajax in MVC5?如何在 MVC5 中由 ajax 调用的局部视图中引用外部 javascript?
【发布时间】:2016-05-16 20:04:38
【问题描述】:

我已经为MVC 3MVC 4 研究了有关此主题的答案,我希望找到 MVC 5 的解决方案。我有一个通过 ajax 加载部分视图的视图。在视图中,我在其中定义了所有 javascript 逻辑 (@section Scripts),因为我的部分视图中不能有任何逻辑。问题是,在我的部分观点中,我希望在成功时调用在视图中定义的 javascript 函数。

以下是我的看法和部分看法

MyView.cshtml

@section Scripts
{
    @Scripts.Render("~/plugins/myplugins")
    <script>
        function callFunctionOutsideThisPartialView() {
        //... This doesn't get called
        }
    </script>
}

MyPartialView.cshtml

@using (Ajax.BeginForm("MyAction", "MyController",
new AjaxOptions
{
    HttpMethod = "POST", 
    InsertionMode = InsertionMode.Replace, 
    UpdateTargetId = "divForPartialView", 
    OnSuccess = "callFunctionOutsideThisPartialView()"
}, new { @class = "form-inline" }))
{
    // Partial View here
}

在 MVC 5 中访问局部视图之外的 javascript 函数的正确方法是什么?

【问题讨论】:

  • 局部视图的思想是重用html代码。无论您使局部视图渲染变得多么复杂。所有的局部视图最终都会被放入你的布局中,呈现为 1 段 html。当您的 html 在浏览器中呈现时,这就是您的 js 发挥作用的地方。只要您的局部视图引用的 js 函数最终会加载到您的页面中。你应该没事
  • 我试过了,但是 OnSucess 中的 javascript 没有被调用,因为控制台说该函数不存在。
  • @Ji_in_coding 是正确的。除非您粘贴的示例代码不是您使用的实际架构,否则应在全局范围内声明函数 callFunctionOutsideThisPartialView()

标签: javascript jquery ajax asp.net-mvc


【解决方案1】:

如果我没记错的话,只需在普通视图中渲染部分视图并通过 ajax 调用加载该普通视图。也将 jquery 添加到普通视图中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2015-06-09
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    相关资源
    最近更新 更多