2009-09-29 4 views
0

У меня есть некоторые javascrtipt например:назначить яваскрипта переменную из C#

<script type="text/javascript"> 
flashvars.myval = "blah"; //get this from c# ..etc 
</script> 

мне нужно присвоить переменной из C#

, как я могу это сделать? Могу ли я назвать метод C#?

im использование правильный какp.net.

javascript находится на странице aspx.

+0

Предоставить дополнительную информацию об окружающей среде, находитесь ли вы в пользовательском браузере? вы используете asp.net mvc? вы используете веб-формы asp.net? Вы использовали библиотеки таких jquery? – kentaromiura

+0

Этот вопрос имеет значение только в том случае, если он хочет, чтобы значение динамически обновлялось, kentaromiura. В противном случае типичный ответ - var v = '<%=whatever%>; - достаточно, и пока нет необходимости идти дальше. –

+0

@yar: ОП отредактировал вопрос. Мои вопросы перед изменениями. – kentaromiura

ответ

3

Вам необходимо предоставить дополнительную информацию. Если предположить, что на странице, некоторые варианты:

  1. триггер постбэк и есть сервер отправить скрипт с ответом на выполнение после загрузки все (с помощью RegisterStartupScript)
  2. сделать запрос AJAX, чтобы получить данные с сервера и установить переменную или делать что-либо на обратный вызов
  3. , если его всегда передается с сервера на веб-формы сделать что-то вроде (или вызвать свойство на странице):

    уаг somevar = '< % = SomePageMethodThatReturnsTheValue()%> ';

  4. , если его всегда передается с сервера на ASP.NET MVC сделать что-то вроде (или ViewData [ "SomeValue"], если его нетипизированный вид):

    вар somevar = '<% = Model.MyProperty% > ';


После редактирования: что и хотите его вариант 3. Что-то вроде:

<script type="text/javascript"> 
flashvars.myval = '<%= SomeMethodInThePageThatReturnsTheValue() %>'; //get this from c# ..etc 
</script> 

код может быть также имущество, которое вы установили на нагрузке: <% = SomeProperty%> ,

+0

Freddy правильный; это два только разумных варианта. @raklos: Помните, что javascript выполняется на клиенте, а код C# выполняется на сервере - следовательно, нет возможности напрямую взаимодействовать между ними, хотя AJAX упрощает взаимодействие между клиентским и серверным кодом для разработчика. – Digitalex

0

Этот сценарий является отдельным файлом или находится на странице aspx?

Если так что-то подобное может работать:

.get({ 'userID': '<%=UserID%>', rest of JSON}); 

Идентификатор_пользователя является C# свойство.

0

Это зависит от того, какую технологию вы используете.

Если вы используете ASP MVC, передать данные в поле зрения (независимо способ подходит вам), а затем использовать <% = синтаксис

т.е.

flashvars.myval = <%=ViewData["MyVal"]%> 
0

Ответ Я собираюсь давайте собираемся сделать много предположений, но, учитывая отсутствие деталей в вашем посте, они кажутся справедливыми. Прежде всего, я предполагаю, что вы используете этот код на веб-странице, а во-вторых, я предполагаю, что у вас есть доступ к коду, запущенному на веб-сервере.Если оба предположения верны, вы можете использовать AJAX для вызова кода на сервере и заполнить это значение с помощью вывода.

Если вы используете jQuery, вы можете посмотреть here для получения дополнительной информации о javascript-коде и here для получения более подробной информации о стороне C#.

Смежные вопросы