none
Não encontra a view RRS feed

  • Pergunta

  • Salve!

    Tenho essa Action no meu Controller Orcamento:

    public ActionResult Index()
    {
        Usuario oUser = new UsuariosApp().LocalizaUsuario(User.Identity.Name.Substring(5));
        if (oUser != null)
        {
            return View(db.Estrutural.ToList());                
        }
        else
        {
            return View("Restricao.cshtml");
        }
    }
    

    O objetivo é que se o usuário não estiver cadastrado na aplicação ele será direcionado para a página Restricao.cshtml, que é uma view sem layout informando que a aplicação é restrita.

    Acontece que está dando o erro abaixo:

    Detalhes da Exceção: System.InvalidOperationException: A exibição 'Restricao.cshtml' ou seu master não foi encontrada ou nenhum mecanismo de exibição oferece suporte para os locais pesquisados. Os seguintes locais foram pesquisados:
    ~/Views/Orcamento/Restricao.cshtml.aspx
    ~/Views/Orcamento/Restricao.cshtml.ascx
    ~/Views/Shared/Restricao.cshtml.aspx
    ~/Views/Shared/Restricao.cshtml.ascx
    ~/Views/Orcamento/Restricao.cshtml.cshtml
    ~/Views/Orcamento/Restricao.cshtml.vbhtml
    ~/Views/Shared/Restricao.cshtml.cshtml
    ~/Views/Shared/Restricao.cshtml.vbhtml

    Sendo que a view está em Views/Orcamento conforme mostra a imagem abaixo:

    Qual erro estou cometendo?

    Grato pela atenção de todos.

    Paulo Ricardo Ferreira

    quinta-feira, 8 de janeiro de 2015 17:10

Respostas

  • Salve!

    Descobri o erro que estava cometendo.

    Alterei a linha que abre a View de restrição para:

    return View("~/Views/Orcamento/Restricao.cshtml");

    Funcionando.

    Grato àqueles que leram o post.

    Cordialmente,

    Paulo Ricardo Ferreira

    sexta-feira, 9 de janeiro de 2015 12:03
  • Só para complementar.

    Se você mudar a view para outra pasta (Shared por exemplo) sempre vai ter que alterar a linha dentro do controller.

    Mas o erro só para te esclarecer é:

    Você está passando a extensão na chamada, o asp.net está entendendo que o nome do arquivo é toda a string.

    Errado:

      return View("Restricao.cshtml");
    o correto seria assim
      return View("Restricao");

    não precisa passar a extensão

    Veja que ate no erro ele mostra

    "~/Views/Orcamento/Restricao.cshtml.cshtml"



    Isco Sistemas José Luiz Borges

    quarta-feira, 14 de janeiro de 2015 13:21

Todas as Respostas

  • Salve!

    Descobri o erro que estava cometendo.

    Alterei a linha que abre a View de restrição para:

    return View("~/Views/Orcamento/Restricao.cshtml");

    Funcionando.

    Grato àqueles que leram o post.

    Cordialmente,

    Paulo Ricardo Ferreira

    sexta-feira, 9 de janeiro de 2015 12:03
  • Só para complementar.

    Se você mudar a view para outra pasta (Shared por exemplo) sempre vai ter que alterar a linha dentro do controller.

    Mas o erro só para te esclarecer é:

    Você está passando a extensão na chamada, o asp.net está entendendo que o nome do arquivo é toda a string.

    Errado:

      return View("Restricao.cshtml");
    o correto seria assim
      return View("Restricao");

    não precisa passar a extensão

    Veja que ate no erro ele mostra

    "~/Views/Orcamento/Restricao.cshtml.cshtml"



    Isco Sistemas José Luiz Borges

    quarta-feira, 14 de janeiro de 2015 13:21
  • Caro José Luiz,

    Muito obrigado pela sua dica.

    Realmente, apliquei a sua sugestão e funcionou perfeitamente.

    quarta-feira, 14 de janeiro de 2015 15:18