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);
Autres puis les erreurs de syntaxe évidentes, cela devrait fonctionner. Quelle est l'erreur? –
pas ma question fondamentale est sur l'approche parce que rien ne venait dans tempdata. – maztt
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. –