Как обернуть функцию в JavaScript для её вызова из серверного кода?

Мне нужна помощь в том, как обернуть функцию в JavaScript, чтобы я смог её вызвать из кода на серверной стороне?

Я имею код для графика, который нужно завернуть в отдельную функцию:

function initializeChart() {
    $('#container').highcharts({
        chart: {
            type: 'bar'
        },
        title: {
            text: 'Потребление фруктов'
        },
        xAxis: {
            categories: ['Яблоки', 'Бананы', 'Апельсины']
        },
        yAxis: {
            title: {
                text: 'Употребление фруктов'
            }
        },
        series: [{
            name: 'Аня',
            data: [1, 0, 4]
        }, {
            name: 'Саша',
            data: [5, 7, 3]
        }]
    });
}

Важный момент: данные получаю с сервера и мне нужно обновлять график, вызывая эту функцию через RegisterClientScriptBlock. Как мне лучше это осуществить?

Ещё проще - передавай данные прямо в RegisterClientScriptBlock. Формируй весь скрипт на сервере: string script = $"initializeChart({JsonConvert.SerializeObject(data)});"; и регистрируй его. Функция получит параметры напрямую, никаких ajax запросов не нужно. Пользуюсь так уже несколько лет - работает без проблем.

Чтобы RegisterClientScriptBlock работал, функция должна быть глобальной. Привяжи её к window: window.initializeChart = function() { ... }. На сервере делай так: ClientScript.RegisterClientScriptBlock(this.GetType(), "chartScript", "window.initializeChart();", true);. Главное - jQuery должен загрузиться раньше, иначе словишь ошибку. Я проверяю через $(document).ready() или проверяю существование jQuery перед вызовом.

Я бы сделал отдельный файл chart.js и подключил его к странице. Функция будет доступна везде без привязки к window. Использую RegisterStartupScript - он запускается после загрузки DOM, что безопаснее для jQuery. RegisterClientScriptBlock часто срабатывает слишком рано, когда #container ещё не готов.