2010-08-20 6 views
2

J'ai des données temporaires que je veux recevoir en javascript et que je veux ensuite assigner à l'onglet sélectionné? comment ferais-je ça?Récupération de la valeur du contrôleur en JavaScript

var langid ="<% Tempdata["something"] %>"; 
$('#tabs').tabs('select', 'tabs' - langid); 
+2

Autres puis les erreurs de syntaxe évidentes, cela devrait fonctionner. Quelle est l'erreur? –

+0

pas ma question fondamentale est sur l'approche parce que rien ne venait dans tempdata. – maztt

+0

Je vois, désolé. J'utiliserais l'approche que vous utilisez. J'ai probablement la valeur sur le modèle, donc je n'ai pas besoin d'utiliser des "chaînes magiques", mais cela dépend de la situation. –

Répondre

0

Généralement TempData est ce que vous utilisez pour transmettre des messages entre les contrôleurs, donc dans votre cas ViewData est un meilleur ajustement, même s'il est considéré comme une meilleure pratique d'utiliser une propriété d'un modèle fortement typé. Malgré le fait que cela fonctionne:

var langid ="<%= ViewData["something"] %>"; 
$('#tabs').tabs('select', 'tabs' - langid); 

en ligne JavaScript dans votre vue est pas une bonne pratique non plus. Et si vous voulez plus tard extraire ce code dans un fichier js séparé, il va se casser. Je recommande de créer un champ caché pour stocker la valeur dans le HTML, et le lire avec jQuery.

Dans votre vue:

<input type="hidden" id="yourLangId" value="<%= ViewData["something"] %>" /> 

Dans votre js:

var langid = $("#yourLangId").val(); 
$('#tabs').tabs('select', 'tabs' - langid); 
0

Je pense que le problème est qu'il manque un crochet de fermeture. Je ne suis pas sûr de ce que la syntaxe est pour définir le texte de l'onglet est cependant.

0

Une autre chose à remarquer est en deuxième ligne


var langid = <%: Tempdata["something"] %>; 
$('#tabs').tabs('select', 'tabs-' + langid); 

0
<script> 
alert('<%=TempData["something"] %>'); 
alert('<%=ViewData["someelse"]%>'); 
</script> 

BTW TempData utilise session, donc sans doute que vous souhaitez coller avec ViewData