Chcę móc żądać statycznych plików .html, które znajdują się w do folderu ~/widoki.
Cóż można. Zaznaczona odpowiedź nie jest całkowicie poprawna, mimo że daje rozwiązanie.
Uzasadnienie w zaznaczonej odpowiedzi jest poprawne, jest to web.config (ustawienie BlockViewHandler jest specyficzne) w folderze Views, który uniemożliwia bezpośredni dostęp do plików. Jest tam do zabezpieczania widoków w Asp.Net MVC. Ale jeśli zadałeś pytanie dotyczące serwowania tych plików bezpośrednio, prawdopodobnie masz do tego ważny powód, na przykład używając częściowych widoków AngularJS (jak w naszym przypadku), w których nie chcemy duplikować folderu widoków o dziwnych nazwach.
Więc tutaj jest bardzo prosty uszczypnąć można zrobić w pliku web.config znaleziony w folderze Widoki bez narażania bezpieczeństwa swojego ASP.NET MVC widoki. Pozwoli to zabezpieczyć .cshtml plików jak zwykle, ale zostawić .html plików alone.A
zmienić tę
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
--to--
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
Zamiast nazywać folder "statyczny", można naśladować strukturę nazwy kontrolera, która znajduje się w folderze Widoki. Adres URL ma ten sam "wygląd". Na przykład. ponieważ nie możesz umieścić swojej zwykłej edycji * Edit.html * w Widokach/Zamów/Edycja.html - umieścisz ją w ~/Order/Edit.html – bkwdesign
To teraz zmieniło się z ostatnim ASP.NET (vNext), gdzie możesz zarejestruj dostawcę statycznego dla plików html, ale nadal kieruj normalnym sposobem MVC. Miałem tylko szybką grę, ale to właśnie zrobiłem z projektem testowym. Przebiegnięcie przez pustułkę w Linuksie ... ale IIS powinien być taki sam, jak przypuszczam. – ppumkin
@bkwdesign Jestem pewien, że jego konfiguracja kontrolowana przez naśladowanie struktury folderów zawiodła mój domyślny program obsługi kontrolerów i uniemożliwiła dostęp do nich. Przetestuj tę sytuację. –