Я не могу использовать свойство Tempdata в MVC - PullRequest
1 голос
/ 16 мая 2019

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

Вот мой контроллер:

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

        TempData["QueueItem"] = first;

        return PartialView("_queuenumber");
    }

Вот мой вид:

        @{
            var item = (MyQueue)TempData["QueueItem"];
        }
        <p>@item.QueueNumber</p>

Вот мой класс:

public class MyQueue
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int MyQueueId { get; set; }
    [Required]
    public string Name { get; set; }

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

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

    public int ServiceId { get; set; }
    public string ServiceLetter { get; set; }

    public virtual Service Service { get; set; }
}

Это выглядит хорошо и работает, но дляПо какой-то причине я получаю ошибку.Ошибка выглядит следующим образом.

Сообщение об ошибке:
"Не удалось найти тип или имя пространства имен 'MyQueue' (отсутствует директива using или ссылка на сборку?)"

Ответы [ 2 ]

3 голосов
/ 16 мая 2019

Вы должны дать полную ссылку на вашу сборку классу

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

В представлении ссылки на библиотеки классов не доступны напрямую, поэтому вам нужно дать полную ссылку на ваш класс

0 голосов
/ 16 мая 2019

вы должны указать или импортировать ваше пространство имен в вашем представлении.Либо вы можете указать как ответ @Ahsam Aslam, либо вы можете указать свое пространство имен using, а также вы можете использовать ключевое слово as для конвертации между совместимыми ссылочными типами или обнуляемыми типами.

например, ваше пространство имен DataStructure затем

@using DataStructure
@{
        var item = TempData["QueueItem"] as MyQueue;
 }

вот так вы можете конвертировать ваш TempData в совместимый тип ссылки.

Я надеюсь, что это поможет вам сообщить мне, если потребуется дополнительная информация.

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