Выполнить Javascript внутри частичного представления в ASP.NET MVC - PullRequest
5 голосов
/ 19 сентября 2009

Я использую этот код JavaScript внутри тега head, чтобы заполнить 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 ]

3 голосов
/ 16 ноября 2009

Вы можете поставить свою функцию так:

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

, поэтому ваша функция swfu будет вызываться, если обновление прошло успешно

2 голосов
/ 19 сентября 2009

Смысл window.onload - выполнить данную функцию после завершения загрузки страницы. Тем не менее, вы должны рассмотреть вопрос о перемещении нагрузки на нижней части тела. И я не самый большой в мире поклонник держать сценарии в голове. :)

1 голос
/ 16 ноября 2009

Частичные представления отображаются с помощью Microsoft Ajax, который не оценивает код JavaScript. Я бы посоветовал не использовать частичные представления в этом случае или взглянуть на другие механизмы представления, такие как Spark .... или поместить весь необходимый javascript в родительское представление, что делает ваш код немного небрежным

...