Javascript страницы бритвы выполнить c # только один раз - PullRequest
0 голосов
/ 10 апреля 2019

Я пытаюсь использовать цикл javascript для обновления данных из моего кода C #. Но он выполняет метод c # только один раз.

Я сделал тестовый класс:

public class testClass
{
    public static int result;
    public static int nb1;

    public static int add()
    {
        result = result + 1;    
        return result;            
    }    
}

И в моем javascript я сделал это:

<script>    
    setInterval(Testing,3000);
    nb1 = 0;
    function Testing() {                
      nb1 = nb1 + 1; //this is to test that the function really restart after 3 seconds
      document.getElementById('label').innerHTML = nb1 + " | " + @testClass.add(); ; // calling my c# method and print into a html label
    }

И это отобразить это на странице: это то, что отображается на моей HTML-странице

Как вы можете видеть число, которое показывает, если функция javascript перезапускается через 3 секунды, но метод c # не обновляется.

Есть ли у вас какие-либо решения?

1 Ответ

1 голос
/ 10 апреля 2019

Похоже, вы на самом деле не понимаете, как HTML, JS и C # работают в унисон.Когда на ваш сервер сделан запрос, он выполнит вычисления для возврата документа.Этот документ представлен в HTML, с добавленной логикой в ​​форме JS, чтобы дополнить его.

При использовании Razor вы можете эффективно использовать C # для построения документа, но не во время выполнения.Если вы хотите, чтобы ваш интерфейсный документ мог взаимодействовать с внутренним кодом C #, вы обязаны использовать сокеты (например, SignalR) или AJAX (который был бы наиболее известным способом асинхронного взаимодействия между веб-страницей и задней частью).конец).

Я помогу вам разобраться, пройдя код с вами ..

Ваша страница бритвы начнет строиться.в какой-то момент он обнаружит следующую строку:

document.getElementById('label').innerHTML = nb1 + " | " + @testClass.add(); ; // calling my c# method and print into a html label

здесь он вызовет метод C #, преобразует его в значение и поместит значение в код JS, поэтому, когда документ получаетотправленный клиенту (вашему веб-браузеру) код будет выглядеть следующим образом:

document.getElementById('label').innerHTML = nb1 + " | " + {THE CALCULATED VALUE} ; // calling my c# method and print into a html label

Я отошлю вас к этому ответу .Где объясняется, как делать то, что вы пытаетесь сделать.

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