Tệp Web.Config làm gì trong thư mục khung nhìn của dự án MVC


85

Tôi đang gặp một số vấn đề với việc triển khai ứng dụng của mình và trong khi khắc phục sự cố, tôi đã xem qua Web.Configtệp trong Viewsthư mục. Trong nỗ lực thu hẹp khả năng của các nguồn đối với vấn đề của tôi, tôi đã cố gắng tìm ra mục đích của tệp ~ Web.Config` đó nhưng thực sự không thể tìm thấy nhiều thông tin.

Vì vậy, về cơ bản câu hỏi của tôi là:

  1. Không những gì Web.configtập làm trong Viewsthư mục của một dự án MVC?
  2. Nó có bắt buộc không?

Trong biểu mẫu web Asp.Net, tôi tin rằng để sử dụng tệp web.config riêng biệt trong một thư mục, thư mục đó phải được đặt làm thư mục ảo trong IIS. Đây có phải là trường hợp trong MVC (tức là Viewsthư mục có cần được định cấu hình như một thư mục ảo) không?


15
Chưa có câu hỏi "ngu ngốc"
contactmatt

8
Đừng bao giờ ngại hỏi những câu hỏi "ngu ngốc". Nếu bạn không biết câu trả lời thì nó không phải là "ngu ngốc". Không có gì là "ngu ngốc" khi hiểu rõ hơn về một thứ gì đó.
DazManCat

4
SO được biết đến với dập tắt người dùng trong bom napalm để đặt câu hỏi ...
Pangamma

Câu trả lời:


79

Không, bạn không cần phải định cấu hình một thư mục ảo vì tệp web.config bổ sung này.

Tệp web.config tồn tại trong các thư mục Chế độ xem để ngăn truy cập vào các chế độ xem của bạn bằng bất kỳ phương tiện nào khác ngoài bộ điều khiển của bạn. Trong mẫu thiết kế MVC, bộ điều khiển được định tuyến các yêu cầu và trả về một dạng xem được hiển thị cho máy khách đang gọi.

Nói cách khác, chế độ xem của bạn tại www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx sẽ không thể truy cập trực tiếp được.

Nếu bạn nhìn vào tệp web.config, nó thực sự đăng ký HttpNotFoundHandlertất cả các đường dẫn và động từ:

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

Hoặc, trong IIS 7, nó có thể trông giống như

<add name="BlockViewHandler" path="*.aspx" verb="*" 
    preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>

21
Nhưng web.config được tạo chứa một lượng lớn văn bản khác - đó là tất cả những gì thừa?
Eamon Nerbonne

7

Nó cấu hình trình biên dịch cho các khung nhìn, chẳng hạn như nhập không gian tên và làm cho thư mục khung nhìn trả về 404.


7

Tệp web.config trong thư mục dạng xem là để thực hiện một số cài đặt chuyên biệt mà bạn muốn áp dụng cho các trang bên trong thư mục dạng xem.

Giống như cài đặt cấu hình như: chuỗi kết nối / cài đặt ứng dụng, v.v.

nhưng điều đó sẽ chỉ áp dụng cho thư mục đó và phần còn lại của dự án sẽ chọn cài đặt từ web.config có ở gốc.

Đặc biệt khi bạn sử dụng khái niệm khu vực sẽ có thư mục riêng cho từng khu vực chứa tệp web.cfg riêng biệt, nơi bạn có thể áp dụng các thiết lập riêng cho từng khu vực.


6

Đó là nếu bạn muốn ghi đè một cái gì đó được đề cập ở trên web.config, tức là nếu bạn muốn tùy chỉnh một cái gì đó trong phạm vi của Viewsthư mục.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.