首页 新闻 搜索 专区 学院

用MVC2做FlexPaper浏览swf文件遇到的传参数问题...

0
悬赏园豆:10 [已解决问题] 解决于 2012-05-10 18:05

看了博客园里很多高手的博客,解决我好多问题,不过最后却在这个传参数的问题上难住了,救助

 

设计了一个File数据表,里面有一个FilePath字段,用来表示文件存储的位置,转向View页面时可以通过传递的Model获取值并显示:

<div class="display-field"><%: Model.FilePath %></div>

这是MVC框架自动生成的并且可以显示,下面是我的问题:

在上面显示一些File的信息后,接着用<script type="text/javascript">...</script>来显示swf文件,不知道怎么获取这个Model.FilePath

<script type="text/javascript">
        var fp = new FlexPaperViewer(
                         "../../FlexPaper/FlexPaperViewer",
                         'viewerPlaceHolder',
                         { config: {
                           SwfFile: escape([此处调用文件的地址来显示,但是无法获取到这个FilePath]),
                           ...
                         }
                         });
      </script>

等待各位大神的出现

iplayfor的主页 iplayfor | 初学一级 | 园豆:175
提问于:2012-05-10 17:07
< >
分享
最佳答案
0

在页面上加一个js全局变量,如:

var filePath="<%: Model.FilePath %>";

然后在你的JS中用:

SwfFile: escape([filePath]),

就OK啦

收获园豆:10
artwl | 专家六级 |园豆:16526 | 2012-05-10 17:35

感谢你啦。成功了。

说到底还是我太基础了,很多基础的语法都没有搞清楚,多得你困扰了我一下午的问题得到了解决。

开始的时候我用过var filePath=<%=Model.FilePath%>不加双引号的方式,结果发现代码自动提示里面索引不到Model.FilePath,所以还以为要换一种方式来写呢。

iplayfor | 园豆:175 (初学一级) | 2012-05-10 18:12
其他回答(1)
0

要看你的页面代码,在同一个Page里是显示一个还是多个记录。楼上是一种解法,但是如果是多条记录的话就不行了。如果是一条记录,也可以直接嵌入。

<script type="text/javascript">
        var fp = new FlexPaperViewer(
                        
"../../FlexPaper/FlexPaperViewer",
                        
'viewerPlaceHolder',
                         { config: {
                           SwfFile: escape(<%:Model.FilePath %>),
                           ...
                         }
                         });
     
</script>

满堂金 | 园豆:202 (菜鸟二级) | 2012-05-10 18:04

开始我用你这个方法测试了一下发现不行,SwfFile:escape()的参数是string类型,像SwfFile:escape("test.swf")这样,所以我用你的这个方法在<% %>外面加上引号,就可以了。

看来引号的作用不能小觑呢。

原理我总算懂了,谢谢你的回答。

支持(0) 反对(0) iplayfor | 园豆:175 (初学一级) | 2012-05-10 18:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册