4
respostas

View não encontra os tipos de váriáveis e a propriedade ViewBag

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <h1>Lista de Livros:</h1>
    <ul>
        @foreach(var livro in ViewBag.Livros) 
        {
            <li>@livro.Titulo - @livro.Autor</li>
        }
    </ul>
</body>
</html>

Boa tarde, estou fazendo um sistema paralelo ao que é apresentado na aula, utilizando um sistema continuo ao que foi apresentado no curso de Entity, porém ocorre erro na linha:

@foreach(var livro in ViewBag.Livros) 

Sobre o var aparece: O recurso 'variavel local digitada implicitamente' não está disponível em C# 2. Use a versão de linguagem 3 ou superior. E sobre a Viewbag aparece: O tipo pré-definido "System.Object" não foi definido ou importado.

Poderiam me ajudar?

4 respostas

Você chegou a verificar qual a versão do C# que está sendo utilizada no projeto?

Bom dia José Waldir, Tudo bem? Espero que sim.

Entrei em Propriedades do projeto, fui em Build > Avançado e no campo versão do idioma está selecionado: Versão principal mais recente do C# (padrão). E dentre as versões listadas há para selecionar desde a 3.0 até a 7.3.

Tente fazer um cast na ViewBag da seguinte forma, também adicionaria uma validação para verificar se a viewbag não está nula:

@if(ViewBag.Livros != null) 
{
    foreach(var livro in (ViewBag.Livros as IEnumerable<Livro>)) 
        {
            <li>@livro.Titulo - @livro.Autor</li>
        }
}

Boa tarde José Waldir,

Ao realizar o comando if o sistema apresenta a seguinte mensagem para a linha do comando:

O tipo pré-definido "System.Boolean" não foi definido ou importado.