Как я могу вызвать функцию JavaScript, определенную в PartialView после завершения запроса AJAX? - PullRequest
1 голос
/ 09 июня 2009

Вот мой частичный взгляд:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script type="text/javascript">
    function myFunction() { .... }
</script>
....other html content ...

На моей странице есть ссылка, которая вызывает действие контроллера для визуализации частичного представления:

<%= Ajax.ActionLink(..., new AjaxOptions { ..., OnSuccess = "myFunction" }) %>

Это действие моего контроллера: ... return PartialView ("TestControl"); ...

Я думал, что это довольно просто. К сожалению, я получаю ошибку JavaScript:

Ошибка времени выполнения Microsoft JScript: «myFunction» не определена.

Когда я проверяю сгенерированный источник страницы после вызова AJAX, я вижу myFunction в источнике. Однако в AJAX OnSuccess как-то не известно об этой функции. Я что-то пропустил? Есть ли способ, которым я могу вызвать сценарий, который является частью частичного представления, которое загружается через AJAX? (Я пытался использовать eval(), так или иначе я не смог разрешить функцию.)

Заранее спасибо.

1 Ответ

0 голосов
/ 10 июня 2009

OnSuccess мог произойти до внедрения частичного представления в DOM; Вам может быть лучше позвонить myFunction сразу после его определения:

function myFunction(){
    //code here
}
myFunction();

Таким образом, myFunction вызывается сразу после его определения (что, поскольку ссылка на скрипт вставляется в DOM с помощью логики частичного представления, происходит как можно скорее после фактического обновления частичного представления).

Если myFunction работает с содержимым частичного представления, вам может потребоваться переместить ссылку на скрипт в конец частичного представления, чтобы DOM, на котором он работает, отображался до выполнения JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...