Как я могу получить доступ к моей статической переменной с другой страницы? Enqueue / Dequeue - PullRequest
1 голос
/ 14 мая 2019

Я ставлю в очередь входящего клиента в моем KioskController.

public ActionResult SetQueueInfo([Bind(Include = "QueueId,Name,QueueNumber,ServiceId,ServiceName,ServiceLetter")] Queue queue/*, int? id,string Name, string QueueNumber, string ServiceLetter, int ServiceId*/, int? id)
{
    if (ModelState.IsValid)
    {
        MyQueue.todayQueue.Enqueue(queue);
        db.Queues.Add(queue);
        db.SaveChanges();
        return View(queue);
    }

    return View();
}

Я хочу снять его с моего TellerScreenController, как я могу использовать статическую переменную для его снятия,

Вот мой TellerScreenController:

    public ActionResult BtnNext()
    {
        var first = MyQueue.todayQueue.Dequeue();

        TempData["QueueItem"] = first;

        return View();
    }

Вот мой класс очереди:

public class MyQueue
{
    public int MyQueueId { get; set; }

    public string Name { get; set; }

    public string QueueNumber
    {
        get
        {
            return string.Format("{0}{1:000}", ServiceLetter ?? "?", QueueId);
        }
        set { }
    }

    public static Queue<MyQueue> todayQueue = new Queue<MyQueue>();

    public string ServiceLetter { get; set; }

    public virtual Service Service { get; set; }
}

1 Ответ

1 голос
/ 14 мая 2019

Вы можете создать класс для TodayQueue

public class QueueHelper{
     public static Queue<Queue> TodayQueue = new Queue<Queue>();
}

В контроллере Kios

public ActionResult SetQueueInfo([Bind(Include = "QueueId,Name,QueueNumber,ServiceId,ServiceName,ServiceLetter")] Queue queue/*, int? id,string Name, string QueueNumber, string ServiceLetter, int ServiceId*/, int? id)
{
    if (ModelState.IsValid)
    {
        QueueHelper.TodayQueue.Enqueue(queue);
        db.Queues.Add(queue);
        db.SaveChanges();
        return View(queue);
    }

    return View();
}

На экране Teller

  public ActionResult BtnFinish()
    {
        var first = QueueHelper.TodayQueue.Dequeue();

        TempData["QueueItem"] = first;

        return RedirectToAction("Index");
    }

В представлении индекса cshtml

@{
   var item = (MyQueue)TempData["QueueItem"];
}

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