2010-08-24 31 views
13

Buscando pasar variables de C# a javascript para usar algún código de jquery. Pasando dobles, ints, strings, arrays. ¿Alguien sabe como hacer esto?¿Cómo se pasan las variables de C# a javascript?

por ejemplo, si tengo este código SNIP en C#:

string blah = "this is a blah string"; 

me gustaría transmitir esto en javascript, por lo que podría utilizar un evento mouseover en jQuery:

$('#myDiv').mouseover(function(){ //do something with my 'blah' string }); 

Respuesta

14

No importa, creo que lo descubrí. Suponiendo que el código anterior, se puede escribir en javascript:

<script type="text/javascript"> var JavascriptBlah = '<%=blah%>'</script> 

Esto pasará el bla en C# para el JavascriptBlah en el lado del cliente. Entonces puedes manipular en el lado del cliente.

+0

La desventaja de esto es que si "blah" tiene una sola comilla, estás en problemas. Tiene sentido convertir su cadena a JSON primero antes de pasarla. –

+0

¿Alguien sabe si usar "<% = VariableName%>, es funcional si a la variable" blah "se le está asignando un valor con una" tarea asincrónica privada Foo() " Lo tengo asignado en una tarea asíncrona privada y Me pregunto si esa es la razón por la que no funciona para mí. –

2

Recientemente utilicé este método de extensión ToJson() junto con Page.RegisterClientScriptBlock Método para pasar un objeto de asignación de niveles múltiples que rellena tres niveles de menús desplegables en cascada.

+0

no estoy seguro de lo que quiere decir aquí, pero ¿podría ver más arriba para la parte editada? – locoboy

+1

** ADVERTENCIA ** Page.RegisterClientScriptBlock es obsoluble desde [Framework v.4.0] (http://msdn.microsoft.com/it-it/library/ee471421 (v = VS.100) .aspx). Se recomienda ahora el método [ClientScriptManager.RegisterClientScriptBlock] (http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerclientscriptblock.aspx). –

0

puede utilizar asp: las variables HiddenField para pasar valores entre CodeBehind y JS .. esta logrado con estado de vista de la página durante las devoluciones de datos ...

+0

¿me puede mostrar algún código? – locoboy

+0

http://stackoverflow.com/questions/252222/access-an-asphiddenfield-control-in-javascript el enlace tiene un código de muestra de esta manera, puede acceder al valor de hiddenfield, ya sea código subyacente o javascript – dankyy1

1

Puede utilizar las propiedades públicas en el código detrás, así como la sesión . Aquí hay una muestra que usa propiedades públicas que se pueden leer desde una función de Javascript.

Front End:

function IsAgentInProgram() 
{ 
    var optStatus = "<%=AgentOptInStatus%>"; 

    if (optStatus == "True") 
     alert("You are opted in!"); 
    else 
     alert ("You are opted OUT"); 
} 

código subyacente:

public bool AgentOptInStatus; 

private void Page_Load(object sender, System.EventArgs e) 
{ 
    this.AgentOptInStatus = true; 

} 
Cuestiones relacionadas