Как вызвать подпрограмму javascript из кода на стороне сервера MVC? - PullRequest
0 голосов
/ 12 февраля 2010

Я знаю, что вы можете вернуть представление javascript, но это никогда не работало для меня.

Я также не смог найти подходящего учебника или объяснения по поводу этой концепции, если кто-нибудь может пролить свет на это, что было бы здорово (да, я пробовал Google бесчисленное количество раз).

Редактировать : Я использовал ваши советы, отладчик и т. Д. Спасибо, ребята. Вот Это Да! Я просто заметил что-то, каждый раз, когда я пытаюсь вызвать функцию, независимо от того, какая функция, в javascript, каким-то образом jQuery и ms ajax framework, javascript захватывает ее и проверяет, готов ли документ (document.onready или другой) и никогда не возвращает элемент управления. вернуться к функции, которую я вызываю! Почему он это делает? Я никогда не просил об этом!

Все, что у меня есть, это ссылки на эти библиотеки, ссылки на скрипты / ссылки, которые вы делаете в верхней части главной страницы.

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

У меня никогда не было такой проблемы с JQuery, но для целей тестирования вы можете попробовать использовать это в представлении:

$(document).ready(function() {
    alert("Here");
});

И метод действия:

public void DoThis()
{
   return View();
}

Просто чтобы проверить работающий код. Ничего особенного, должен быть вид с этим предупреждением и метод действия в любом контроллере.

Это работает?

1 голос
/ 12 февраля 2010

Очень просто:

1) Создание представления для вызова JavaScript:

HelloWorld.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script type="text/javascript">
    alert('Hello world !!!')
</script>

2) Затем создайте Действие для этого Представления:

MainController.cs

[ChildActionOnly]
public ActionResult HelloWorld()
{
    if (It_Is_Time_To_Call_HelloWorld_On_ClientSide)
    {
        return View();
    }

    return new EmptyResult();
}

3) Добавьте RenderAction для вызова JavaScript Action где-то внизу вашей страницы

Site.Master

    ...

    <% Html.RenderAction("HelloWorld", "Main"); %>
    </body>
</html>

Надеюсь, это поможет

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