2010-06-28 6 views
0

Dans mon .aspx J'ai la variable javascript suivante défini:Enum à chaîne C# et JavaScript

var action = <%=ProdView %> 

Dans le code-behind cela renvoie une valeur ENUM personnalisée:

protected ProductView ProdView { get; private set; } 

Je voudrais chiffre que cela serait automatiquement converti en une chaîne de caractères en JavaScript? On dirait que non parce que j'obtiens l'erreur d'exécution "Item is not defined" où Item est la valeur ProdView.Item. En fin de compte, je veux que la valeur de l'action soit "Item" comme valeur.

Voici le Enum:

public enum ProductView 
    { 
    Product, 
    Item 
    } 

Répondre

5
var action = '<%=ProdView.ToString() %>' 

Ne pas oublier les guillemets.

Modifier pour répondre sur les toxicomanes de café commentaires

Vous devez vous rappeler que le code est exécuté deux fois, d'abord à côté serveur pour générer la chaîne de texte:

var action = '<%=ProdView.ToString() %>' 

est exécuté par ASP.net et transformé en une chaîne complète avant de le renvoyer au navigateur Web

var action = 'lalalalala' 

Et le script Java actuel est exécuté dans le navigateur Web. Donc, ASP.net n'a rien à voir avec l'exécution réelle de javascript. Son travail consiste uniquement à générer du HTML/javascript/css qui sera renvoyé au webbrowser.

+1

Oui, ce qu'il a dit. Même le mien n'a pas eu les citations - et le mien casserait aussi. –

+0

Je suppose que je ne comprends pas sous le capot comment JS interprète cette ligne de code en termes de renvoi des références côté serveur dans une chaîne. – PositiveGuy