Итак, вот круглый путь, в котором я это сделал. Я просто не знаю, является ли это лучшей практикой или нет. Исходя из комментариев, я указываю, какие элементы сеанса я хочу отправить в угловой.
1) Я создал уникальный словарь, который собирается передать данные моей сессии переменной
private Dictionary<string, List<string>> _sessionDict
= new Dictionary<string, List<string>>();
2) Я создал (Fn), чтобы ускорить процесс вставки
public static void addDictionarySession(
Dictionary<string, List<string>> sessionDict, string key, string value)
{
List<string> stringValue = new List<string>() { value };
sessionDict.Add(key, stringValue);
}
3) Я вставил данные в мой словарь
utility.addDictionarySession(_sessionDict, "test", "This is a test");
4) Я добавил словарь сессии
Session.Add("jsPass", _sessionDict);
5) Я создал страницу обработчика ASHX, чтобы получить переменные сессии здесь моя функция
private void getSessionVariables()
{
Dictionary<string, string> sessionData = new Dictionary<string, string>();
// Retrieve Session that is stored in dictionary
Dictionary<string, List<string>> sessionDict =
_context.Session["jsPass"] as Dictionary<string, List<string>>;
if (sessionDict != null)
{
foreach (KeyValuePair<string, List<string>> entry in sessionDict)
{
// Set the Value of the item
foreach (string value in entry.Value)
{
sessionData.Add(entry.Key, value.ToString());
}
}
}
// _context is just my private HttpContext variable I set at the beginning of the class
utility.httpContentWrite(_context, sessionData);
}
5) Я создал угловую службу, которая извлекает страницу обработчик ASHX
// Load Session
getSession: function() {
return $http.get('../../handlers/getSessionData.ashx');
}
6) Я создал функцию углового контроллера для вызова службы и вытащил элемент в переменную $ scope, я установил функцию в переменную, а затем выполнил вызов функции
var setSession = function() {
UtilityService.getSession().success(
function (results) {
$scope.session = results;
});
};
setSession();
7) Теперь я могу получить доступ к переменной
{{сессии.тест}}
8) Вы можете просмотреть все элементы, которые вы установили с помощью этого
<div ng-repeat="(key, value) in session">
<span>{{key}} : {{value}}</span>
</div>
9) Я был в состоянии получить сеанс в рамках here
Пример типа данных сеанса, который вы хотите передать, был бы полезен. Выявление партии никогда не является хорошей идеей (риск безопасности). Простые значения могут быть введены в элементы страницы, как вы это делали. Более сложные данные могут (не рекомендуется) вводиться как объекты буква JS. Все зависит от того, что вы хотите сделать. –
Так будет ли создание массива сеанса специально для перехода в угловую лучшую идею? – Demodave
Какие данные вы хотите от сеанса на странице? Можете ли вы привести пример, чтобы мой плохой уставший мозг мог его пережевывать? :) –