在ASP.NET MVC的局部视图中执行Javascript

时间:2009-09-18 22:33:03

标签: asp.net-mvc swfupload javascript

我在head标签中使用此JavaScript代码,以便使用浏览按钮填充div,以便用户可以上传图像(swfupload)。

<head>
...
<script type="text/javascript">
    var swfu = function() {
        return new SWFUpload({
            // Backend Settings
            // settings go here...
            // Too long to display here
            // Debug Settings
            debug: false
        });
    }
    window.onload = swfu;
</script>
</head>

...

<div id="swfu_container" style="margin: 0px 10px;">
    <div>
    <span id="spanButtonPlaceholder"></span>
</div>
<div id="divFileProgressContainer" style="height: 75px;"></div>
<div id="thumbnails"></div>
</div>

这很好用,但问题是当我尝试将此代码放在局部视图中时。到目前为止,我无法让它发挥作用。

有没有人更有经验来救援?

谢谢

3 个答案:

答案 0 :(得分:3)

你可以把你的功能放在这个:

<%= Ajax.ActionLink("YourAction",new AjaxOptions{ OnSuccess="swfu", UpdateTargetId = "spanButtonPlaceholder" }) %> 

因此,如果您的更新成功,则会调用您的swfu函数

答案 1 :(得分:2)

window.onload的意思是在页面完成后执行给定的函数... loading。也就是说,你应该考虑将onload移动到身体的底部。而且我不是世界上最擅长保持脚本的粉丝。 :)

答案 2 :(得分:1)

部分视图使用Microsoft Ajax呈现,后者不评估JavaScript代码。我建议在这种情况下不要使用局部视图,或者查看其他视图引擎,如Spark ....或者将所有必需的javascript放在父视图中,这样会使你的代码有点草率