看了博客园里很多高手的博客,解决我好多问题,不过最后却在这个传参数的问题上难住了,救助
设计了一个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>
等待各位大神的出现
在页面上加一个js全局变量,如:
var filePath="<%: Model.FilePath %>";
然后在你的JS中用:
SwfFile: escape([filePath]),
就OK啦
感谢你啦。成功了。
说到底还是我太基础了,很多基础的语法都没有搞清楚,多得你困扰了我一下午的问题得到了解决。
开始的时候我用过var filePath=<%=Model.FilePath%>不加双引号的方式,结果发现代码自动提示里面索引不到Model.FilePath,所以还以为要换一种方式来写呢。
要看你的页面代码,在同一个Page里是显示一个还是多个记录。楼上是一种解法,但是如果是多条记录的话就不行了。如果是一条记录,也可以直接嵌入。
<script type="text/javascript">
var fp = new FlexPaperViewer(
"../../FlexPaper/FlexPaperViewer",
'viewerPlaceHolder',
{ config: {
SwfFile: escape(<%:Model.FilePath %>),
...
}
});
</script>
开始我用你这个方法测试了一下发现不行,SwfFile:escape()的参数是string类型,像SwfFile:escape("test.swf")这样,所以我用你的这个方法在<% %>外面加上引号,就可以了。
看来引号的作用不能小觑呢。
原理我总算懂了,谢谢你的回答。