c# - 共享 View 上的 ASP.Net MVC4 JavaScript 未从链接执行

标签 c# jquery asp.net-mvc

我有一个简单的 ASP.Net MVC 4 应用程序,专为移动使用而设计。该应用程序使用内置的 C# Visual Studio 移动应用程序模板,该模板附带表单例份验证以及用于处理登录的帐户 View 和 Controller 。

该应用程序具有内置的登录 View 、主菜单和我自己创建的飞行 View 。

我希望所有 CSS 类为“date”的 html 元素都是日期时间选择器,因此通过 JQuery UI,我在加载 Jquery 包后立即将以下 JavaScript 放入 Shared/_Layout.cshtml View 中:

<script type="text/javascript">
            $(document).ready(function () {
                alert("test");
                $('.date').datepicker({ dateFormat: "dd/mm/yy" });

            });
</script>

当我登录应用程序并手动将浏览器中的 URL 更改为“航类” View 时,该脚本完全满足了我的需要。手动导航到 http://localhost:63891/Flight

但是,当我从主菜单上的链接导航时,它永远不会运行脚本。在主菜单 View 中,链接是通过以下内容生成的:

<ul data-role="listview" data-inset="true">
    <li data-role="list-divider">Navigation</li>
    <li>@Html.ActionLink("Flights", "Index", "Flight")</li>
</ul>

需要明确的是,单击链接会按预期呈现 View ,但它不会运行我的 JavaScript。我运行脚本的唯一方法是手动输入 URL。

我尝试将脚本移动到实际的 Flight View 中,但此时 JQuery 尚未加载,因为它已加载到 Shared/_Llayout.cshtml View 的脚本部分中。

当我将鼠标悬停在链接上时,显示的 URL 为 localhost:63891/Flight,但当我实际单击时,URL 更改为 localhost:63891/#/Flight。我不确定这是为什么以及是否相关。

如何在点击链接时运行脚本?

编辑:我想我有这个问题,但没有人回答他/她的问题 How to handle jQuery event on an ASP.net MVC Ajax loaded page?

最佳答案

如果移动网站使用 JQM,并且从评论中可以看出确实如此。尝试使用

$(document).bind('pageinit')

而不是

$(文档).ready()

more on that

关于c# - 共享 View 上的 ASP.Net MVC4 JavaScript 未从链接执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16809224/

相关文章:

c# - 如何增加C#中的并行任务数

c# - 使扩展方法异步

c# - 如何使用 Epplus 获取修改后的 excel 的实际使用范围?

javascript - 如何使用javascript隐藏并让div重新出现

jquery - 确定所有 init 函数何时完成?

javascript - 使用另一个 div 类将相同的类添加到 div

c# - 保存前向 Controller 添加功能

c# - 在 C# 依赖项中使用 MySQLConnector

javascript - 从命令行触发 ASP.Net MVC 捆绑

asp.net-mvc - F# 支持最新的 asp.net 5 和 MVC6