我有一个使用母版页的 View ,其中包含一些需要使用 Body 的 OnLoad 执行的 javascript。仅针对某些 View 在我的 MasterPage 上设置 OnLoad 的最佳方法是什么?
我的想法是将 javascript 函数的名称作为 ViewData 传递。但我真的不希望我的 Controller 必须了解页面上的 javascript。我真的不喜欢这种方法...
<body onload="<%=ViewData["Body_OnLoad"]%>">
<asp:ContentPlaceHolder ID="MainContent" runat="server" />
编辑 - 我想一个想法是改用 jQuery 的文档就绪事件......
还有其他想法吗?
最佳答案
现在 JQuery 正式成为 ASP.NET MVC 的一部分,我会推荐使用它。它很小,可以为您的应用程序增加大量值(value)。
我建议添加包含 Intellisense 注释的 Mustafa 版本的 JQuery:
然后将它添加到您的脚本文件夹(MVC Beta 1 中的新功能),并像这样引用它:
<script language="javascript" type="text/javascript" src="../../Scripts/jquery-1.2.6-intellisense.js"></script>
在您的代码中,您现在可以添加如下函数:
$(document).ready(function() {
// do stuff when DOM is ready
});
既然你提到你只希望它在某些 View 中发生,你可以像这样在你的母版页中添加一个占位符:
<asp:contentplaceholder id="JavascriptPlaceholder" runat="server"></asp:contentplaceholder>
然后在您的 View 中,您可以选择是否将代码放在那里。
它会进入头部部分
关于javascript - 在 Asp.net MVC 母版页中设置 Body 的 OnLoad 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/207150/