2
respostas

Unespected

Olá.

Estou tentando colocar os valores do nome da categoria no carrossel do produto por categoria.

Quando tento definir uma variável de nome usando @{} (linha 35 a 37) recebo uma mensagem que não é possível fazer isso dentro do "body" ou de um bloco "if" mas logo abaixo isso foi feito para definir a variável "produtosDaPagina" (linhas 52 a 54) sem problemas.

Tentei não declarar a variável e usar direto no header mas tbm falhou (linha 41 comentada).

Eu sei que é possível pois fiz um teste fora do bloco "for" com essa mesma linha de código no bloco de variáveis e, usando o "debbug", vi que ele consegue atribuir o valor do nome da categoria em "string".

Alguém sabe o que está errado?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Aqui o código todo

@*
    For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@


@model List<Produto>;

<div class="container">
    <div class="row">
        <div class="col-md-4">
            <h2>Buscar produtos</h2>
            <div id="custom-search-input">
                <div class="input-group col-md-12">
                    <input type="text" name="pesquisa" class="form-control input-lg" placeholder="categoria ou produto" id="Pesquisa" value="" />
                    <span class="input-group-btn">
                        <button class="btn btn-info btn-lg" type="submit">
                            <i class="glyphicon glyphicon-search"></i>
                        </button>
                    </span>
                </div>
            </div>
        </div>
    </div>
</div>

@{
    const int TAMANHO_PAGINA = 4;
    int paginas = (int)Math.Ceiling((double)Model.Count() / TAMANHO_PAGINA);
    int produtoCodCategoriaTotal = Model.Select(p => p.Categoria).Distinct().Count();
}

@for (int produtoCodCategoria = 1; produtoCodCategoria < produtoCodCategoriaTotal + 1; produtoCodCategoria++)
{

    @{
        var nomeCategoria = Model.Select(p => p.Categoria).Where(p => p.Id == produtoCodCategoria).First().Nome;
    }
    <h3>@nomeCategoria</h3>

    //<h3>Livros de Programa&#xE7;&#xE3;o / L&#xF3;gica</h3>
    //<h3>@Model.Select(p => p.Categoria).Where(p => p.Id == produtoCodCategoria).First().Nome</h3>


    <div id="my-carousel-@produtoCodCategoria" class="carousel slide" data-ride="carousel">
        <!-- Wrapper for slides -->
        <div class="carousel-inner" role="listbox">
            @for (int pagina = 0; pagina < paginas; pagina++)
            {
                <div class="item @(pagina == 0 ? "active" : "")">
                    <div class="row">

                        @{
                            var produtosDaPagina = Model.Skip(pagina * TAMANHO_PAGINA).Take(TAMANHO_PAGINA);
                        }

                        @foreach (var produto in produtosDaPagina)
                        {
                            <div class="col-md-3 col-sm-3 col-lg-3">
                                <div class="panel panel-default">
                                    <div class="panel-body">
                                        <img class="img-produto-carrossel" src="/images/produtos/large_@(produto.Codigo).jpg" />
                                    </div>
                                    <div class="panel-footer produto-footer">
                                        <div class="produto-nome">@produto.Nome</div>
                                        <div><h4><strong>R$ @produto.Preco</strong></h4></div>
                                        <div class="text-center">
                                            <a class="btn btn-success">Adicionar</a>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        }
                    </div>
                </div>
            }
        </div>
        <a class="left carousel-control" href="#my-carousel-@produtoCodCategoria" role="button" data-slide="prev">
            <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
            <span class="sr-only">Previous</span>
        </a>
        <a class="right carousel-control" href="#my-carousel-@produtoCodCategoria" role="button" data-slide="next">
            <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
            <span class="sr-only">Next</span>
        </a>
    </div>
}




Achei... tinha de incluir numa

propria