【问题标题】:Javascript not working in Partial ViewJavascript 在部分视图中不起作用
【发布时间】:2011-12-17 23:16:13
【问题描述】:

这个问题类似于Execute Javascript inside a partial view in ASP.NET MVC中描述的问题

index.cshtml 中的以下代码运行良好...


<label for="locationOfSearch"> in :</label> @Html.TextBox("locationOfSearch")

<input type="submit" value="Search"  style="background-color:Green"/>

@section JavaScript {
    <script type="text/javascript">
        $(document).ready(function () {


            $("#locationOfSearch").autocomplete({
                source: '@Url.Action("AutocompleteAsyncLocations")'
            })



        });
    </script>
}

但是当我将上述代码和相应的脚本文件复制并粘贴到另一个视图中,然后在 index.cshtml 中调用 Html.Partial(新视图名称)时,自动完成功能不起作用...

请告诉我如何在没有太多修改的情况下解决它...

【问题讨论】:

  • 尝试这样调用...Html.RenderPartial(新视图名称);
  • 您是否检查过 jquery 的多重包含,即在部分视图和 index.cshtml 中?你在萤火虫中也有任何错误吗?

标签: asp.net asp.net-mvc-3 asp.net-mvc-partialview


【解决方案1】:

您不能在局部视图中使用部分。他们根本不工作。因此,您必须在视图中保留@section JavaScript 才能注册脚本,然后渲染仅包含标记的部分。您还可以编写自定义帮助方法来实现此目的,如 this answer 所示。

【讨论】:

  • 如果我使用简单的 标签会怎样
  • @Darin Dimitrov 我只在部分视图中使用了 也不起作用。有什么办法吗?
【解决方案2】:

部分视图需要引用所有脚本,即使您已经在主/布局页面中引用了它。创建一个局部视图(例如:_Scripts.cshtml)并将所有脚本和样式表引用放入其中。然后在每个视图中调用这个局部视图:

 @Html.Partial("_Scripts")

【讨论】:

  • 我试过 Html.RenderPartial ;同样的问题没有多个文件包含......我已经和user834754所说的一样......仍然有问题!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多