Desejo poder solicitar .html
arquivos estáticos que estão localizados na ~/Views
pasta. De acordo com a documentação, o sistema de roteamento verifica se um URL corresponde a um arquivo de disco antes de avaliar as rotas do aplicativo.
Mas quando eu solicito o arquivo, 404
surge um erro.
Meu arquivo está localizado na pasta ~ / Views. O URL é:http://[localhost]/Views/HtmlPage1.html
O que eu perdi?
fonte
Para permitir arquivos como js e html na pasta Views, edite o web.config na pasta views:
fonte
Bem, você pode. A resposta marcada não é totalmente correta, embora forneça uma solução.
O raciocínio da resposta marcada está correto, é web.config (configuração BlockViewHandler para ser específico) na pasta Views que impede que os arquivos sejam acessados diretamente. Ele existe para proteger as visualizações no Asp.Net MVC. Mas se você fez uma pergunta sobre como servir esses arquivos diretamente, provavelmente tem um motivo válido para fazê-lo, como usar visualizações parciais do AngularJS (como no nosso caso), onde não queremos duplicar a pasta de visualizações com nomes estranhos.
Portanto, aqui está um ajuste muito simples que você pode fazer no arquivo web.config encontrado na pasta Views, sem comprometer a segurança de suas views mvc do asp.net. Isso protegerá os arquivos .cshtml como de costume, mas deixará seus arquivos .html em paz.
Mude isso
--para--
fonte
Outra opção alternativa é inserir um método de ação em qualquer um dos controladores desejados para servir o arquivo html
Acesse o html como http: // yoursite / controller / MyHtml . Você pode estender este método de ação para aceitar o nome do arquivo html como parâmetro do método / querystrign e renderizar o arquivo em tempo de execução, por exemplo, algo assim.
fonte
Se você está planejando usar a pasta de visualização interna, as respostas acima devem ser as melhores, mas essa resposta pode ser útil para usuários que estão migrando para o asp.net mvc core. Colocar arquivos em wwwroot em vez de na pasta de visualizações deve fazer com que suas páginas html acessem facilmente como localhost / myfile.html
fonte