Как получить значение Сессии asp.net в методе jQuery?

Я нашел решение своей проблемы: нужно просто to set "moduleResolution": "node" in my tsconfig.json, тогда не относительный импорт начнет работать.

Путь к типам в package.json этого пакета работает, только если я напишу:

import Choices from 'choices.js';

Не ан:

import  Choices from 'choices.js/public/assets/scripts/choices.js';

Кароль Маевски, спасибо за помощь Вы подтолкнули меня к решению.

12
задан Usman 24 September 2012 в 06:10
поделиться

4 ответа

$('input,select').attr('disabled','<%=Session["CoBrowse"].ToString() %>');
18
ответ дан 2 December 2019 в 03:43
поделиться

Many comments:

  1. You cannot "Access Session from jQuery". You use MVC and asp.net to create an HTML page (with JavaScript). Session is a server-side object, and JavaScript runs on the client side.
  2. Take a look at jQuery's selectors. They have useful selectors like :checkbox, :text, etc.
  3. Your code produce the JavaScript you expect: it compiles, runs, and produces JavaScript with true or false on the right place.
  4. This is not the way to disable an element. If an element has the 'disabled' attribute it will be disabled, no matter the value. is also a disabled check box, so your controls are always disabled.
  5. If that is the way you choose anyway, consider:

    var isCoBrowse = <%= Session["Name"].ToString().ToLower() %>;
    if (! isCoBrowse) // отключение элементов управления
    $ ( ": Текст,: флажок: радио"). Атр ( "отключен", "отключен"); // стандарт.
    

    Это создаст клиентский код JavaScript:

     var isCoBrowse = true;
    

    И, чтобы включить элемент:

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

Кроме того, есть намного лучшие способы добиться этого. Думали ли вы об отключении элементов управления на стороне сервера, если это возможно?

8
ответ дан 2 December 2019 в 03:43
поделиться

Not sure if this is the best route but within your aspx page you could create a method that returns the value of your session variable, e.g.

Server side:

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

then call this method client side using 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);
    }
});
8
ответ дан 2 December 2019 в 03:43
поделиться

Если эта переменная сеанса является конфиденциальными данными (что в данном случае, вероятно, не так), я бы не стал использовать это решение, поскольку оно покажет данные сеанса когда вы посмотрели на исходный код javascript. Если это конфиденциальные данные сеанса, возможно, лучше всего будет получить к ним доступ через веб-метод (см. Ответ выше).

1
ответ дан 2 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: