ฉันพบข้อผิดพลาดต่อไปนี้กับโครงการ ASP.NET MVC 3 ของฉัน:
พบหลายประเภทที่ตรงกับคอนโทรลเลอร์ชื่อ 'Home' กรณีนี้อาจเกิดขึ้นได้หากเส้นทางที่ให้บริการคำขอนี้ ("Home / {action} / {id}") ไม่ได้ระบุเนมสเปซเพื่อค้นหาตัวควบคุมที่ตรงกับคำขอ ในกรณีนี้ให้ลงทะเบียนเส้นทางนี้โดยเรียกใช้เมธอด 'MapRoute' ที่โอเวอร์โหลดซึ่งใช้พารามิเตอร์ 'เนมสเปซ'
คำขอสำหรับ 'Home' พบตัวควบคุมที่ตรงกันดังต่อไปนี้: MyCompany.MyProject.WebMvc.Controllers.HomeController MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController
ฉันมี HomeController ในโฟลเดอร์ตัวควบคุมเริ่มต้นของฉันโดยมีชื่อคลาสเป็น MyCompany.MyProject.WebMvc.Controllers.HomeController
เมธอด RegisterRoutes ของฉันใน global.asax ของฉันดูเหมือนว่า:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
จากนั้นฉันมีพื้นที่ที่เรียกว่า Company โดยมี HomeController ในโฟลเดอร์ตัวควบคุมเริ่มต้นสำหรับพื้นที่โดยมีชื่อคลาสเป็น MyCompany.MyProject.WebMvc.Areas.Company.Controllers.HomeController
เมธอด RegisterArea ในไฟล์ CompanyAreaRegistration มีลักษณะดังนี้:
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Company_default",
"Company/{controller}/{action}/{id}",
new { area = "Company", action = "Index", id = UrlParameter.Optional }
);
}
ทั้งหมดนี้นำไปสู่ข้อผิดพลาดที่ฉันเน้นไว้ในตอนต้นของโพสต์นี้ ฉันกำลังดิ้นรนพยายามที่จะปะติดปะต่อวิธีการแก้ปัญหาจากโพสต์อื่น ๆ ด้วยไม่มีโชค
เป็นไปได้หรือไม่ที่จะมี HomeController ในโฟลเดอร์ตัวควบคุมเริ่มต้นและหนึ่งตัวในพื้นที่แต่ละตัว? ถ้าเป็นเช่นนั้นฉันต้องทำการเปลี่ยนแปลง (สมมติว่าฉันทำ) กับไฟล์คอนฟิกูเรชันของฉันเพื่อให้สามารถใช้งานได้หรือไม่
ความช่วยเหลือใด ๆ จะได้รับการชื่นชมมาก!