6

Sau khi cố gắng làm việc này cho các lứa tuổi, suy nghĩ về xung đột định tuyến và nhiều hơn nữa - Tôi bắt đầu một dự án riêng ngay từ đầu. Có vẻ như một bộ điều khiển MVC được gọi là "thuộc tính" luôn trả về một thông điệp bị cấm 403.14 khi bạn cố truy cập vào trang gốc (http://site/properties) - tuy nhiên, các trang khác hoạt động (http://site/properties/index).Có điều gì đặc biệt về bộ điều khiển MVC được gọi là thuộc tính không?

Nó hoạt động tốt như bộ điều khiển trong một khu vực, nhưng, tôi không thể tạo nó trong trang chính.

Tôi đã tự hỏi liệu có ai biết tại sao và cách tốt nhất là gì?

Trả lời

2

Vấn đề là dự án của bạn đã chứa một thư mục có tên Properties được sử dụng chủ yếu cho tệp AssemblyInfo.cs nhưng cũng có các nội dung khác trong đó. Công cụ được sử dụng để giải quyết những tệp nào để gửi cho máy khách ưu tiên các tệp và thư mục qua định tuyến. do đó, URL http://site/properties đang cố gắng để nội dung máy chủ từ đó, mà cuối cùng bị chặn anyway.

3

Bổ sung cho số answer của DavidG.

Khi bạn xuất bản dự án, bản dựng đã biên dịch không có thư mục Thuộc tính. Để giải quyết vấn đề trong khi phát triển cục bộ, bạn có thể đặt RouteExistingFiles thành true để định tuyến ASP.NET xử lý tất cả các yêu cầu.

public static void RegisterRoutes(RouteCollection routes) 
{ 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.RouteExistingFiles = true; 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
} 
Các vấn đề liên quan