Как использовать переменный статический список при многопользовательском доступе - PullRequest
0 голосов
/ 25 июня 2018

эта переменная работает нормально, если используется одним пользователем, но при использовании двумя или более пользователями, «статическая» переменная будет считана следующим пользователем, первый пользовательский экземпляр при заполнении таблицы сетки содержит 5 строк данных и Я пытаюсь получить доступ через другой браузер при входе на страницу, gridview второго пользователя уже заполнил 5 строк данных, введенных первым пользователем. тогда как решить эту проблему? пожалуйста, посмотрите мой код и дайте мне решения. спасибо.

static List<ServicesModels> _gridPackageDetail = new List<ServicesModels>();

private void AddListAction(string alfa, string beta)
{
    ServicesModels data = new ServicesModels()
    {
          id_service_detail = Guid.NewGuid(), 
          scope_name = alfa, 
          detail_name= beta
    };
    _gridPackageDetail.Add(data);
}

public ActionResult GridPackageDetail()
{
    ViewBag.DataListPackage = _gridPackageDetail.OrderBy(a => a.scope_name).ToList();
    return PartialView();
}

мой код в контроллере mvc3.

1 Ответ

0 голосов
/ 25 июня 2018

Код работает нормально, потому что это то, что подразумевается под «статическим», чтобы иметь одинаковые данные для нескольких пользователей.В вашем случае вам нужно создать список или словарь или многомерный массив (с любой структурой данных, с которой вам удобно) и сохранить в ней данные по каждому использованию, а затем извлекать данные при необходимости на основе идентификатора пользователя.

    static List<ServicesModels> _gridPackageDetail = new List<ServicesModels>();

private void AddListAction(string alfa, string beta)
{
    ServicesModels data = new ServicesModels()
    {
          id_service_detail = Guid.NewGuid(), 
          scope_name = alfa, 
          detail_name= beta,
         user_id = getTheID()// Get the id of the user

    };
    _gridPackageDetail.Add(data);
}

public ActionResult GridPackageDetail()
{
    ViewBag.DataListPackage = _gridPackageDetail.OrderBy(a => a.scope_name && user_id ==getTheID()).ToList();
    return PartialView();
}

замените getTheID () на способ получения идентификатора пользователя.

Используется, если вы хотите сохранить данные всех пользователей.иначе вы должны удалить статическое ключевое слово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...