【问题标题】:Call JavaScript from within an ASP.NET MVC Partial View从 ASP.NET MVC 部分视图中调用 JavaScript
【发布时间】:2015-08-09 06:58:13
【问题描述】:

我创建了一个 ASP.NET MVC 局部视图,并通过 HTML.Action 辅助方法调用它:

@Html.Action("GetMyPartialView", "MyController", new { myParameter})

局部视图包含一个需要调用一些 JavaScript 的控件(外部 JavaScript 文件中的 JavaScript 库)。 如何从我的局部视图中调用此 JavaScript 代码。

我尝试在局部视图中使用脚本元素:

<script>
    MyJavaScriptFunction();
</script>

这不起作用。可能当时还没有加载外部 JavaScript 文件(例如 jQuery)。

当局部视图被渲染时,推荐的执行 JavaScript 代码的方法是什么?

【问题讨论】:

  • 在渲染部分视图的主视图中调用 javascript
  • 放入主视图中并包裹在document.ready

标签: javascript c# asp.net-mvc partial-views


【解决方案1】:

您不能在局部视图中使用 java 脚本部分。他们根本不工作。所以在主视图中保留@section JavaScript,以便注册脚本,然后渲染部分视图

【讨论】:

    【解决方案2】:

    我的情况差不多。我所做的是在主视图中添加了 javascript。您尝试在您调用的主视图中添加 javascript

     @Html.Action("GetMyPartialView", "MyController", new { myParameter})
    

    【讨论】:

    • 你让我不用花更多时间在这上面。谢谢!
    【解决方案3】:

    你可以使用ajax调用来实现。

    $(document).ready(
    
        //Do ajax call  
            $.ajax({
            type: 'GET',
            url: "controller action url",    
            data : {                          
                      //Data need to pass as parameter                       
                   },           
            dataType: 'html', //dataType - html
            success:function(result)
            {
               //Create a Div around the Partial View and fill the result
               $('#partialViewContainerDiv').html(result);                 
            }
    

    //动作

           public ActionResult GetMyPartialView(int myParameter)    
           {    
             //return partial view instead of View   
              return PartialView("YourView", resultSet);   
            }
    

    【讨论】:

      【解决方案4】:

      我刚刚遇到了这个问题。您可以从局部视图中调用局部视图中的 javascript 函数。我创建了一个隐藏字段并定义了 onclick 事件来调用我需要调用的函数来初始化局部视图中的对话框。然后我触发了该隐藏字段的点击事件。

      部分视图中的代码:

       <input type="hidden" id="initializeDialog" onclick="initializeDialog();" />
      
      <script>
          function initializeDialog(){
              // Do stuff
          }
      </script>
      

      包含视图中的代码:

      <script>
          $('#InitializeDialog').trigger('click');
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 2017-12-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多