2010-07-21 40 views
10

Tôi có trang web MVC 2 có diện tích, giả sử tên khu vực là {Admin}Trang asp.net mvc mặc định

Các khu vực và trang web hoạt động tốt.

Điều tôi đang cố gắng thực hiện là có trang mặc định khác cho khu vực.

Khi tôi kêu gọi http://webSiteName làm việc với không có vấn đề

nhưng đối với http://webSiteName/Admin Tôi nhận được lỗi

Tài nguyên không thể được tìm thấy

tôi đã cố gắng nó ra các giải pháp từ ASP.NET MVC 2 RC 2 returns Area-specific controller when no area specified nhưng không có may mắn.

Tôi cũng đã cố gắng

routes.MapRoute(
       "Admin",           
       "{controller}/{action}/{id}",        
       new { controller = "AdminHome", action = "index" }, 
       new[] { "Web.Areas.Admin.Controllers" } 
       ); 

routes.MapRoute(
       "Admin",          
       "Admin",        
       new { controller = "AdminHome", action = "index" }, 
       new string[] { "Web.Areas.Admin.Controllers" } 
       ); 

nhưng tôi vẫn nhận được Tài nguyên không thể được tìm thấy.

Tôi đang làm gì sai?

+0

Vui lòng đánh dấu anser là được chấp nhận nếu nó giúp bạn. –

Trả lời

14

Hãy thử điều này. Đảm bảo nó sẽ ở trong số /Areas/Admin/AdminAreaRegistration.cs khi Khu vực của bạn có tên là Admin.

public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Admin_default", 
      "Admin/{controller}/{action}/{id}", 
      new { controller = "AdminHome",action = "Index", id = "" } 
     ); 
    } 

Bạn không phải thêm bất kỳ thứ gì vào số Global.asax của mình.

+0

Cảm ơn Martin, cuối cùng thì nó còn dễ hơn tôi tưởng. :) – StrouMfios

Các vấn đề liên quan