最近刚做一个MVC项目,由于之前一直是ASP.NET,所以对这个也不太熟悉,目前有个问题不好解决,网上也没找到合适的办法, 请广大博友懂得或者也遇到过但解决的来给一答案指点迷津,他日小弟我飞黄腾达...不贫了,上图!
母版页:
子页:
子页中的Iframe弹出页:
目的:
在iFrame页面中需要使用一个时间插件和百度的UEditor插件 则需要引用相应的js和css,问题是,在iFrame页面中直接引用则无加载,在其父页中引用有加载但是不可用(估计是在父页引用的但是元素都在iFrame页的缘故)在三个页面中都不能使用 @Script.Rander(...)的写法注册js,提示上下文不存在Script。父页使用了母版页,iFrame页没有使用。MVC版本是4.0
问:
1. 如何在iFrame页面引用js和css?为什么这里不能引用(引用了,但是页面无加载)?
2. iFrame页面和其父页面有什么共同的东西?什么是可以相互调用的?
最终无奈,不使用iFrame了,单独开一个页面出来,然后一切就正常了....也是无语,为什么使用了iFrame弹出页面,js和css不能顺利加载?
如果有能解决这个问题的,还是照样送分,目前的问题就先这么着了,祝各位博友工作顺利,生活顺利!
我觉得对于无法加载的,css的话看看路径 和右键源代码查看是否和你设想的一样;js的话路径是否正确以及引用的顺序问题。
给LZ一个建议:如果使用section的话,子页最好对应的section 出现的顺序放置相关的代码。
就是通过浏览器没有查看到加载,页面也无效果,地址什么都对,顺序的话,换了好几个也是无效果.
额~你这个代码 理论上是可以的啊,不过总感觉你的js代码在页面上放的顺序有问题~把母版页的js放到最下面试试呢~
插件的js不能放到母版页的,这只有某些页面使用该插件。
问题是出在iframe吧.iframe就是另一个页面了.
iframe 页面中的红框标识去掉 没有引用母板页 就不用哪个括起来吧!
试过啦,不行的,加不加都不行,放在前,中,后也不行
@小博RunTime: 页面上的Layout="母板页" 必须引用母板页 才能在页面上使用母板页定义的js和css 你自己看看你的页面 什么都没引就想使用 肯定是加载不上?你自己再改改吧!
我第一次MVC的看到这样的用法,我就直接写script和引用css,而不是写在@section scripts或者什么什么里面,看着蛋疼,
感觉好复杂的样子
你的子页是怎样和模板页关联起来的?
页面中的 Layout="" 或者=null 就没关联了 , 不加默认有母版页, 或者直接加上母版页名称.
@小博RunTime: 我看你的子页没有Layout申明。另外,在MVC中,一般不称做模板页,可以叫布局页。另外iframe是独立页面,所以你放在@section中,是无法加载的。一定要搞清楚section和RenderSection之间的关系,是一一对应的。如果你的布局页上没有RenderSection("scripts"),那么你放在@section scripts中的内容是无法生效的。
你要想iframe中的scripts生效,那么只需要去掉@section这样的标记就好。
我写MVC引用JS和CSS都是直接引用的,基本上没用过这个@section scripts,JS方面只需要注重一下引用顺序就行,楼主去掉@section scripts 直接引用试试!
@Html.Partial("_topMenue")<!--_topMenue视图占位符-->