MVC 3 Razor - 如何在布局页中使用脚本引用来自局部视图的内容

5
我在我的局部视图中使用了一些jQuery,并意识到需要再次在局部视图中放置脚本引用才能使jQuery工作。
我想知道是否有一种方法可以“调用”布局页面中的所有脚本引用,这样我就不需要在局部视图中重复它?
我尝试搜索相关信息并尝试使用@section存储脚本引用,但似乎无法正常工作。
希望能得到一些指导......非常感谢...
4个回答

5
你可以将所有脚本引用放在一个专门的Partial View中,然后从Layout页面和其他需要脚本引用的Partial View中调用@Html.Partial("ScriptReferences")

3
我通常在布局视图中包含/引用所有脚本。虽然有些脚本不是所有页面都需要的。
部分视图无需担心脚本不可用。这也可以节省开发时间。
拥有所有脚本的开销很小。特别是如果你将所有.js文件合并成一个大的最小化的脚本(Chirpy可以为您完成)。现代浏览器将知道它是相同的脚本,不会反复下载和解析它们。

抱歉,您的意思是“局部视图不必担心脚本不可用”吗??我的布局页面中的所有脚本引用在局部视图中都不可用...它们只在普通视图中可用。 - shennyL
你的部分视图会像视图一样以HTML形式呈现,因此在运行时,你的部分视图将能够访问在_Layout.cshtml页面上引用的脚本,就像其他任何视图一样。 - simonlchilds
但是如果我在局部视图中没有复制脚本引用,我的脚本就无法正常工作,有什么原因吗?非常感谢... - shennyL
"xxx"未定义; "xxx"不是函数。 - shennyL

1

Layout 页面中的脚本引用会自动共享给部分视图。如果 Home 页面(加载布局)URL 和部分视图 URL 不是相对路径,可能会遇到问题...使用相对 URL 加载部分视图,共享脚本文件引用和全局命名空间就能正常工作...


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接