Quiero acceder a la Sesión de valor en el método jquery en el ASP.NET MVC vista de página. Ver el código de abajo,

$('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', '<%= Session["CoBrowse"].ToString() %>');

¿Cómo puedo obtener el valor de la Sesión en jquery.

Que parece que debería funcionar. ¿Qué sucede cuando se utiliza el código anterior?

OriginalEl autor Ravi | 2009-05-13

6 Comentarios

  1. 18
    $('input,select').attr('disabled','<%=Session["CoBrowse"].ToString() %>');

    OriginalEl autor

  2. 8

    De muchos comentarios:

    1. Usted no puede «Acceder a la Sesión de jQuery». Utiliza MVC y asp.net para crear una página HTML (con JavaScript). La sesión es un objeto de servidor y JavaScript se ejecuta en el lado del cliente.
    2. Echa un vistazo a los selectores de jQuery. Tienen útil selectores como :checkbox, :text, etc.
    3. Su código de producir el JavaScript que esperar: compila, ejecuta y produce JavaScript con true o false en el lugar correcto.
    4. Esta no es la manera de deshabilitar un elemento. Si un elemento tiene la ‘movilidad’ atributo que será desactivado, no importa el valor. <input type="checkbox" disabled="false" /> es también una casilla de verificación deshabilitado, por lo que sus controles son siempre con discapacidad.
    5. Si esa es la manera que usted elija, de todos modos, tenga en cuenta:

      var isCoBrowse = <%= Session["Name"].ToString().ToLower() %>;
      if(!isCoBrowse) //disable controls
        $(":text,:checkbox,:radio").attr("disabled","disabled"); //standard.

      Esto producirá el lado del cliente con JavaScript de código:

      var isCoBrowse = true;

      Y, para habilitar un elemento:

      $("input").removeAttr("disabled");

    También, hay mucho mejores maneras de lograr esto. Han considerado que la desactivación de los controles en el lado del servidor, si es posible?

    var isCoBrowse = <%= Session[«Nombre»].ToString().ToLower() %>; sintaxis incorrecta
    #1 – la respuesta es Incorrecta (por ejemplo, var search = @Session(«Mivalor») funciona)
    No escribo que en el punto 5? JavaScript no puede acceder a la sesión directamente, y aun no se sabe que hay una sesión. El uso de la sesión, como el lado del servidor, para crear JavaScript, es algo completamente diferente.
    usted puede acceder al objeto de Sesión en una máquina de Afeitar ver en jQuery, que yo estoy haciendo, así que mientras escribo esto. Por supuesto, este es el valor para el cliente y no en el objeto de Servidor (que creo que se sugiere en el punto #5).

    OriginalEl autor Kobi

  3. 8

    No estoy seguro si esta es la mejor ruta, pero dentro de su página aspx se podría crear un método que devuelve el valor de la variable de sesión, por ejemplo,

    Lado del servidor:

    using System.Web.Services;
     [WebMethod(EnableSession = true)]
    public static string GetSession()
    {
       return Session["CoBrowse"].ToString();
    }

    a continuación, llamar a este método de lado del cliente con 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);
        }
    });
    Puede acceder a la Sesión desde dentro de un método estático? Yo no creo que pudiera.
    Esta es la ruta que me he bajado también. Tengo un servicio web que devuelve me el identificador de sesión como así.. un Guid = Guid.Parse(HttpContext.Actual.Session[«Session_Id»].ToString()); y luego he leído que en el lado del cliente a través de la función ajax de jquery. Ten en cuenta que será necesario OBTENER, ya que sólo de devolver un valor.
    No sé por qué a nadie voto para esta respuesta. nosotros no podemos obtener de la Sesión en el método estático

    OriginalEl autor Fermin

  4. 6
    <input id="sessionInput" type="hidden" value='<%= Session["name"] %>' />
    
    var getSessionValue = $('#sessionInput').val();

    OriginalEl autor fyalavuz

  5. 1

    Si esa variable de Sesión es sensible datos (que en este caso probablemente no lo es), no me gustaría utilizar esta solución como sería una muestra de los datos de la Sesión cuando miró en la fuente de javascript. Si es sensible a los datos de la sesión, acceder a él a través de un método web (ver respuesta anterior) es probablemente el mejor.

    OriginalEl autor Cody C

  6. -1

    Fácil! cuando usted sabe cómo:

    @Html.Codificar(período de Sesiones(«classificationTitle»))

    …y en el .archivo js:

    var classificationTitle = document.getElementById('classificationTitle').innerHTML;

    lo siento – me puedo publicar el código html completo como este sitio elimina los paréntesis angulares 🙁

    OriginalEl autor user1633617

Dejar respuesta

Please enter your comment!
Please enter your name here