Voglio essere in grado di richiedere i file .html statici che si trovano nella cartella ~ l'/ Vista.
Beh, è possibile. La risposta contrassegnata non è del tutto corretta, sebbene fornisca una soluzione.
Il ragionamento nella risposta contrassegnata è corretto, è web.config (l'impostazione BlockViewHandler è specifica) nella cartella Visualizzazioni che impedisce l'accesso diretto ai file. È lì per rendere sicure le viste in Asp.Net MVC. Ma se hai fatto una domanda su come servire questi file direttamente, probabilmente hai un valido motivo per farlo, come usare le viste parziali di AngularJS (come nel nostro caso) dove non vogliamo duplicare la cartella delle viste con nomi strani.
Quindi, ecco un semplice tweak che è possibile eseguire nel file web.config trovato nella cartella Views, senza compromettere la sicurezza delle viste del mvc asp.net. Questo garantirà i file .cshtml come al solito, ma lasciare i vostri file .html alone.a
Modificare questa
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
--to--
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
Oppure, anziché denominare la cartella "statica", è possibile simulare la struttura del nome del controller che si trova all'interno della cartella Visualizzazioni .. quindi l'URL ha lo stesso "aspetto". Per esempio. dato che non puoi inserire plainjane * Edit.html * in Views/Order/Edit.html - lo metti in ~/Order/Edit.html – bkwdesign
Questo è ora cambiato con l'ultimo ASP.NET (vNext) dove puoi registra il provider statico per i file html, ma anche instrada il normale modo MVC. Ho avuto solo un gioco veloce con questo, ma è quello che ho fatto con un progetto di test. Esecuzione di Kestrel su Linux ... ma IIS dovrebbe essere lo stesso, suppongo. – ppumkin
@bkwdesign Sono sicuro che la sua configurazione controllata mimando la struttura delle cartelle ha incasinato il gestore predefinito dei miei controller e l'ha reso inaccessibile. Quindi prova questa situazione. –