Usuário com melhor resposta
Não encontra a view

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.vbhtmlSendo 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
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
- Marcado como Resposta PRicardo 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 assimreturn 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
- Marcado como Resposta PRicardo Ferreira quarta-feira, 14 de janeiro de 2015 15:18
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
- Marcado como Resposta PRicardo 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 assimreturn 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
- Marcado como Resposta PRicardo Ferreira quarta-feira, 14 de janeiro de 2015 15:18
-