Tôi có một trang web có cấu trúc Tuyến đường "chung" và khu vực "Dịch" bổ sung. Vì vậy, ở cấp cao nhất, bạn có cái gì đó như:Định tuyến MVC ASP.NET - tất cả đều khớp với mẫu tuyến đường chính xác, nhưng không hoạt động
- /
- /Về ("chung chung")
- /Dịch (khu vực)
Trong khu vực Dịch, tôi có:
- /Dịch/Word (WordController, Index hành động)
- /Dịch/Word/Thêm (WordControll er, Thêm hành động)
- /Dịch/Word/Nâng cao (WordController, Cải thiện hành động)
Tất cả những công việc.
Tuy nhiên, ngay sau khi tôi thêm bộ điều khiển thêm vào cấu trúc hiện tại, ví dụ: Định nghĩa ...
- /Dịch/Definition (DefinitionController, Index hành động)
- /Dịch/Definition/Thêm (DefinitionController, Thêm hành động)
hoặc phát âm ...
- /Dịch/Phát âm (PronunciationController, Hành động lập chỉ mục)
- /Dịch/phát âm/Thêm (PronunciationController, Thêm acti trên)
Tất cả tôi nhận được là một 404.
cấu hình định tuyến khu vực Mỹ là dưới đây:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Translate_direct",
"Translate/{controller}/{action}",
new { action = "Index", controller = "Default", }
);
context.MapRoute(
"Translate_default",
"Translate/{toLanguageCode}/{query}/{fromLanguageCode}/{controller}/{section}/{action}/{id}",
new { action = "Index", controller="Default", id = UrlParameter.Optional, section=UrlParameter.Optional }
);
}
Tôi đã cài đặt Phil Haack's RouteDebugger và đã có kết quả sau:
Vì vậy, nó xuất hiện để phù hợp với Bộ điều khiển và hành động, nhưng tôi chỉ nhận được một 404.
Đối với tính đầy đủ và đảm bảo, "MVC" cấu trúc tập tin của tôi cũng được hiển thị:
tôi là thiếu rõ ràng cái gì đó rõ ràng nhưng không chắc chắn những gì ...?
Cập nhật:
Dường như không gian tên của tôi có liên quan đến bằng cách nào đó.
Lớp TranslateAreaRegistration của tôi có không gian tên Taggloo.Web.Client.Areas.Dịch nhưng PronunciationController của tôi có một không gian tên là * Taggloo.Web. ** Mvc. ** Client.Areas.Translate.Controllers *
Dường như một lỗi trong không gian tên của tôi đã khiến cho hai khác biệt (TranslateAreRegistration lớp học phải ở trong không gian tên Taggloo.Web.Mvc.Client.Areas.Translate). Tôi đã thử làm cho cả hai số này là Taggloo.Web.Mvc .... nhưng điều này không hiệu quả. Tôi đã bắt đầu đặt cả hai thành Taggloo.Web.Client ... thay vào đó và giờ nó hoạt động.
Vì vậy, không phải là một giải pháp, một cách giải quyết, và mặc dù nhìn xung quanh về điều này, tôi vẫn không có khôn ngoan hơn là tại sao.
Xin chào, Tất cả những gì bạn muốn là có cùng một không gian tên trên tất cả các trình điều khiển. Cả hai bộ điều khiển của tôi đều nằm trong các thư mục khác nhau, tức là Nhật ký và Lỗi tương ứng. Tất cả dường như hoạt động với tôi ví dụ: 'đang namespace Web.Controllers { public class LogController: Bộ điều khiển { }} namespace Web.Controllers { public class ErrorController: Bộ điều khiển { }} ' –
Ah, nhờ @NipunAmbastha . Có vẻ như tôi đã bỏ lỡ một trong những Bộ điều khiển của mình. –
Rất vui, tôi có thể giúp bạn :) –