Загрузка нескольких переменных JS с использованием RegisterStartupScript - PullRequest
0 голосов
/ 19 ноября 2009

Мне нужно загрузить несколько переменных в мой JS-код из моего бэкэнда C # (ASP 2.0). В настоящее время я использую следующий код

    string js;
    if (swapSize == null && VMWare == null)
        js = "var stackedUnknownExemptCheck = " + stacked.ToString().ToLower() + ";";
    else if (VMWare == null)
        js = "var stackedUnknownExemptCheck = " + stacked.ToString().ToLower() + "; var swapSize = " + swapSize.ToString() + ";";
    else if (swapSize == null)
        js = "var stackedUnknownExemptCheck = " + stacked.ToString().ToLower() + "; var VMWare = " + VMWare.ToString().ToLower() + ";";
    else
        js = "var stackedUnknownExemptCheck = " + stacked.ToString().ToLower() + "; var VMWare = " + VMWare.ToString().ToLower() + "; var swapSize = " + swapSize.ToString() + ";";

    Page.ClientScript.RegisterStartupScript(this.GetType(), "", js, true);

Тем не менее, вывод всегда заканчивается как первая переменная до точки с запятой (см. Ниже). Есть ли способ убедиться, что все переменные загружены? Спасибо.

<script type="text/javascript">
//<![CDATA[
var clusterMS = false;//]]> 
</script>

1 Ответ

0 голосов
/ 19 ноября 2009

Поскольку я не вижу "clusterMS", перечисленной ни в одном из этих javascript, я предполагаю, что вы никогда не называете свои блоки javascript. Часть, в которой вы просто делаете "" - это имя скрипта, если у вас есть другие блоки RegisterStartupScript, вы перезаписываете их каждый раз, если у них нет уникального имени.

Изменение

Page.ClientScript.RegisterStartupScript (this.GetType (), "", JS, правда);

до

Page.ClientScript.RegisterStartupScript (this.GetType (), "VMSwapScript", js, true);

(И дайте каждому сценарию, в котором вы регистрируете уникальное имя)

...