Je souhaite accéder à une valeur de session dans la méthode jQuery dans la page de vue ASP.NET MVC. Voir le code ci-dessous,
$('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', '');
Comment puis-je obtenir la valeur de session dans jQuery.
$('input,select').attr('disabled','<%=Session["CoBrowse"].ToString() %>');
Beaucoup de commentaires:
:checkbox
:text
, etc. true
ou false
au bon endroit.
est également une case à cocher désactivée, de sorte que vos contrôles sont toujours désactivés . Si tel est votre choix, considérez:
var isCoBrowse = <%= Session["Name"].ToString().ToLower() %>; if(!isCoBrowse) //disable controls $(":text,:checkbox,:radio").attr("disabled","disabled"); //standard.
Cela produira le code JavaScript côté client:
var isCoBrowse = true;
Et pour activer un élément:
$("input").removeAttr("disabled");
En outre, il existe de bien meilleurs moyens pour y parvenir. Avez-vous envisagé de désactiver les contrôles côté serveur, si possible?
Vous n’êtes pas sûr qu’il s’agisse du meilleur itinéraire, mais au sein de votre page aspx, vous pouvez créer une méthode qui renvoie la valeur de votre variable de session, par exemple:
Du côté serveur:
using System.Web.Services; [WebMethod(EnableSession = true)] public static ssortingng GetSession() { return Session["CoBrowse"].ToSsortingng(); }
appelez ensuite cette méthode côté client en utilisant jQuery:
$.ajax({ type: "POST", url: "./Default.aspx/GetSession", data: "{}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(result){ ('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', result.d); } });
var getSessionValue = $('#sessionInput').val();
Si cette variable de session est une donnée sensible (ce qui dans ce cas ce n’est probablement pas le cas), je n’utiliserais pas cette solution car elle montrerait les données de la session lorsque vous avez examiné la source javascript. S’il s’agit de données de session sensibles, il est probablement préférable d’y accéder via une méthode Web (voir la réponse ci-dessus).
Facile! quand tu sais comment:
@ Html.Encode (Session (“classificationTitle”))
… et dans le fichier .js:
var classificationTitle = document.getElementById('classificationTitle').innerHTML;
désolé – je ne peux pas publier l’intégralité du code HTML car ce site supprime les crochets 🙁