我有一个简单的 ASP.Net MVC 4 应用程序,专为移动使用而设计。该应用程序使用用于移动应用程序的内置 C# Visual Studio 模板,该模板带有表单身份验证以及用于处理登录的帐户视图和控制器。
该应用程序具有我自己创建的内置登录视图、主菜单和飞行视图。
我希望 CSS 类为“date”的所有 html 元素都是日期时间选择器,因此通过 JQuery UI,我在加载 Jquery 包后立即将以下 JavaScript 放入 Shared/_Layout.cshtml 视图中:
<script type="text/javascript">
$(document).ready(function () {
alert("test");
$('.date').datepicker({ dateFormat: "dd/mm/yy" });
});
</script>
当我登录应用程序并手动将浏览器中的 URL 更改为 Flight 视图时,该脚本完全符合我的需要,例如手动导航到http://localhost:63891/Flight
但是,当我从主菜单上的链接导航时,它永远不会运行脚本。在主菜单视图中,链接生成如下:
<ul data-role="listview" data-inset="true">
<li data-role="list-divider">Navigation</li>
<li>@Html.ActionLink("Flights", "Index", "Flight")</li>
</ul>
为了清楚起见,单击链接会按预期呈现视图,它只是不运行我的 JavaScript。我可以让脚本运行的唯一方法是手动输入 URL。
我尝试将脚本移动到实际的 Flight 视图中,但此时未加载 JQuery,因为它已加载到 Shared/_Llayout.cshtml 视图的脚本部分中。
当我悬停链接时,显示的 URL 为 localhost:63891/Flight,但当我实际单击 URL 时,URL 更改为 localhost:63891/#/Flight。我不确定这是为什么以及是否相关。
单击链接时如何让脚本运行?
编辑:我想我有这个问题,但没有人回答他/她的问题如何处理 ASP.net MVC Ajax 加载页面上的 jQuery 事件?