Tôi muốn để có thể yêu cầu các file .html tĩnh mà được đặt tại thư mục ~/Lần đọc.
Bạn có thể. Câu trả lời được đánh dấu không hoàn toàn chính xác, mặc dù nó đưa ra một giải pháp.
Lý do trong câu trả lời được đánh dấu là chính xác, đó là web.config (cài đặt BlockViewHandler là cụ thể) trong thư mục Chế độ xem để ngăn các tệp được truy cập trực tiếp. Nó là có cho việc đảm bảo các quan điểm trong Asp.Net MVC. Nhưng nếu bạn hỏi một câu hỏi về việc cung cấp các tệp này trực tiếp thì bạn có thể có lý do hợp lệ để làm như vậy, như sử dụng các khung nhìn một phần AngularJS (như trong trường hợp của chúng ta).
Vì vậy, đây là một tinh chỉnh rất đơn giản mà bạn có thể thực hiện trong tệp web.config được tìm thấy trong thư mục Views, mà không ảnh hưởng đến tính bảo mật của chế độ xem asp.net asp.net của bạn. Điều này sẽ đảm bảo các tập tin .cshtml như bình thường nhưng lại file .html của bạn alone.A
Thay đổi này
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
--to--
<add name="BlockViewHandler" path="*.cshtml" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
Hoặc, thay vì đặt tên thư mục 'tĩnh', bạn có thể bắt chước cấu trúc tên bộ điều khiển được tìm thấy bên trong thư mục Views .. để URL có cùng 'hình thức'. Ví dụ. vì bạn không thể đặt plainjane của bạn * Edit.html * trong Views/Order/Edit.html - bạn đặt nó trong ~/Order/Edit.html – bkwdesign
Điều này bây giờ đã thay đổi với ASP.NET mới nhất (vNext), nơi bạn có thể đăng ký nhà cung cấp tĩnh cho các tệp html nhưng cũng vẫn định tuyến theo cách MVC bình thường. Chỉ có một vở kịch nhanh với nó nhưng đó là những gì tôi đã làm với một dự án thử nghiệm. Chạy qua kestrel trên Linux .. nhưng IIS nên giống như tôi giả sử. – ppumkin
@bkwdesign Tôi chắc chắn cấu hình của nó được kiểm soát bằng cách bắt chước cấu trúc thư mục đã làm rối loạn trình xử lý mặc định của trình điều khiển của tôi và làm cho nó không thể truy cập được. Vì vậy, hãy kiểm tra tình huống này. –