Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no Ex. 3 da Aula 3 - Controlando Requisições e a Listagem de Produtos

Eu fiz o controller e a view, mas não estou conseguindo exibir a pagina com a view dos produtos. Estava aparecendo a pagina da HomeController e quando tentei mudar a pagina inicial da aplicação para a view de produtos deu o erro abaixo:Erro de Servidor no Aplicativo '/'.

Não é possível encontrar o recurso.

Descrição: HTTP 404. O recurso que você está procurando (ou uma de suas dependências) não pôde ser removido, seu nome foi alterado ou está temporariamente indisponível. Examine o URL e certifique-se de que está digitado corretamente.

URL solicitada: /Views/Produto/Index.cshtml

segue meu código abaixo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using CaelumEstoque.DAO;
using CaelumEstoque.Models;
namespace CaelumEstoque.Controllers

{
    public class ProdutoController : Controller
    {
        // GET: Produto
        public ActionResult Index()
        {
            ProdutosDAO dao = new ProdutosDAO();
            IList<Produto> produtos = dao.Lista();
            ViewBag.Produtos = produtos;
            dao.Lista();
            return View();
        }
    }
}

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div> 
        <table>
            <thead>
                <tr>
                    <th>Id</th>
                    <th>Nome</th>
                    <th>Quantidade</th>
                </tr>
            </thead>
            <tbody>
                @foreach(var produto in ViewBag.Produtos)
                {
                    <tr>
                        <td>@produto.Id</td>
                        <td>@produto.Nome</td>
                        <td>@produto.Quantidade</td>
                    </tr>
                }
            </tbody>
        </table>
    </div>
</body>
</html>
3 respostas
solução!

Olá Agnaldo,

No ASP.NET MVC, as views não podem ser acessadas diretamente. A requisição sempre tem que passar primeiro pelo Controller, que depois chama a view.

Para fazer a alteração que você quer, faça o seguinte: 1- Clique com o botão direito no projeto, depois vá em Properties; 2- Depois, do lado esquerdo, clique na opção Web; 3- Selecione a opção Specific Page, e no campo que abrir você vai digitar a URL da rota que deseja especificar como página inicial. No seu caso seria "produto/index" ou somente "produto".

Depois que fizer a alteração, aperte ctrl+s para salvar e execute a aplicação. Você verá que vai abrir na página que você quer (:

Funcionou Gabriel, mas tive também que alterar o parâmetro no Web.configconforme abaixo:

obrigado Agnaldo

opa parece que não foi a linha:

< add name="EstoqueContext" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|DBEstoque.mdf;Integrated Security=True" providerName="System.Data.SqlClient" / >

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software