2010-07-30 11 views

Respuesta

1

Usted puede generar el script del lado del servidor e incrustar el valor en él:

StringBuilder sb = new StringBuilder(); 
sb.Append("<script type=\"text/javascript\""); 
sb.Append("var someFunc = function(){"); 
sb.AppendFormat("alert('{0}');", importantServerSideValue); 
sb.Append("};"); 
sb.Append("</script>"); 

Page.ClientScript.RegisterClientScriptBlock("genScript", sb.ToString()); 

O coloque el valor de un elemento de forma oculta en la página y acceder a él desde el lado del cliente Javascript.

<!-- In the Markup --> 
<asp:HtmlInputHidden id="hiddenField" runat="server" /> 

// And in the code-behind 
hiddenField.Value = importantServerSideValue; 
+0

StringBuilder para construir scripts para inyectar en la página, aaargh, mis ojos! ;-) El campo de entrada oculto es mucho mejor :) – Rob

+0

@Rob - Hehe. Por lo general, de manera predeterminada construyo el script en el código subyacente a menos que el OP indique que no necesita usar ninguno de los métodos especiales para registrar el script (como registrarlo como un script de inicio, etc.). –

9

Si quiere decir que tiene que pasar el valor de una función de JavaScript, lo que puede hacer es algo como esto ...

En el archivo .aspx:

<script language="javascript" type="text/javascript"> 
    var stringValue = '<%=GetStringValue();%>'; 

    // For example: 

    alert(stringValue); 
</sctipt> 

en el archivo .aspx.cs:

private string GetStringValue() 
{ 
    return "A string value"; 
} 

Esto entonces mostrar un cuadro de mensaje diciendo javascript "un valor de serie "cuando la página carga

0

Cuando tuve que pasar un valor variable de PHP a JS, utilicé php para repetir el js con una variable establecida en el valor de la variable php. p.ej.

//php code 
echo 'var number = ' . $variable . ';'; 
Cuestiones relacionadas