Вставьте код в <head>, используя ASP.NET - PullRequest
1 голос
/ 19 января 2010

У меня есть код, который выглядит примерно так:

<head runat="server">
  <script type="text/javascript">
     var params = {};
     params.param1 = 'value1';
     params.param2 = 'value2';
     params.param3 = 'value3';
     params.param4 = ''; // ASP.NET value 1
     params.param5 = ''; // ASP.NET value 2
     function.call(params);
  </script>
</head>

Как использовать ASP.NET для заполнения param4 и param5? Я читал о главных страницах и заполнителях контента, но есть ли способ, которым я могу просто сделать что-то вроде params.param4 = '<%= var1 %>'; или params.param4 = '<asp:var />';?

Редактировать

Спасибо всем, кто так быстро ответил. Должно быть, у меня была ошибка синтаксического анализа или что-то такое, что заставило меня думать, что это невозможно. Просто чтобы прояснить, что я сделал, чтобы решить мою проблему:

Страница ASPX:

<head>
  <script type="text/javascript">
     var params = {};
     params.param1 = 'value1';
     params.param2 = 'value2';
     params.param3 = 'value3';
     params.param4 = '<%= var1 %>';
     params.param5 = '<%= var2 %>';
     function.call(params);
  </script>
</head>

Код CS-Behind:

public string var1 { get; set; }

public string var2 { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
   // setup code goes here
   var1 = 'param4';
   var2 = 'param5';
}

Примечание: Вам не нужно runat="server" в заголовке, и если переменные являются общедоступными в коде, к ним можно получить доступ через <%= %> в <head>.

Ответы [ 3 ]

2 голосов
/ 19 января 2010

Вы как бы ответили на свой вопрос. Вы можете объявить свои переменные в выделенном фрагменте кода и затем использовать их в своем коде с тегами <%= %>, или вы можете использовать метод RegisterClientScriptBlock , чтобы добавить JavaScript на страницу на лету.

1 голос
/ 19 января 2010

Если ваши значения являются открытыми переменными, объявленными в части класса .cs, вы можете сделать именно то, что вы описали, и прочитать их в тегах сервера.

1 голос
/ 19 января 2010

вы могли бы сделать именно это, если бы не было runat = "server"

в качестве альтернативы вы можете выдать params массив на стороне сервера

Page.ClientScript.RegisterArrayDeclaration("params", "'value1','value2','value3','" + value4 + "','" + value5 + "'");
...