2010-07-22 115 views
0

我需要幫助。我無法從我的主項目訪問我的便攜式區域。我構建了一切,當試圖訪問這個便攜式區域(localhost:123/IW/Home)時出現404錯誤,但我所有常規區域都正常工作(例如:localhost:123/Portal/Home)無法訪問MVCContrib中的我的便攜式區域MVC2

Here's我爲了做安裝我的便攜式區域 -I下載MVCContrib -I添加參考MVCContrib.dll在我的主要項目(稱爲WAB)

-I創建在同一個解決方案WAB一個新的類Librairy項目。 - 此新類Librairy稱爲IWPortableArea和我添加了必要的程序集的引用(MVCContrib,System.mvc,...)

-I創建IWRegistration:

namespace IWPortableArea 
{ 
    public class IWRegistration : PortableAreaRegistration 
    { 
     public override void RegisterArea(System.Web.Mvc.AreaRegistrationContext context, IApplicationBus bus) 
     { 
      context.MapRoute(
       "iw", 
       "iw/{controller}.aspx/{action}", 
       new { controller = "login", action = "index" }); 

      RegisterAllAreas(GetType()); 
     } 

     public override string AreaName 
     { 
      get { return "iw"; } 
     } 


    } 
} 

-I創建了一個簡單的控制器這不是利用任何視圖文件:

namespace IWPortableArea.Controllers 
{ 
    public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      return Content("yo you are in IW Portable Area, congrats"); 
     } 
    } 
} 

-I加入我的主要項目,便攜式區域的引用:IWPortableArea.dll

- 最後我修改我的主要應用程序的Global.asax.cs中來:

public class MvcApplication : System.Web.HttpApplication 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 


      routes.MapRoute(
       "Default", // Route name 
       "{controller}.aspx/{action}/{id}", // URL with parameters 
       new { controller = "Portal", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 
     } 

     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 

      RegisterRoutes(RouteTable.Routes); 
     } 
    } 
+0

什麼是「iw/{controller} .aspx/{action}」中的aspx? – jfar 2010-07-22 18:04:05

+0

我們的網絡服務器上的IIS不支持「.aspx」而不支持.aspx沒有.aspx我得到一個404錯誤。所以在我的文章中,當我說http:// localhost:123/IW/Home時,它應該是http:// localhost:123/IW/Home.aspx – 2010-07-22 18:13:15

+0

您是否已將區域視圖的編譯操作更改爲Embedded Resource? – 2010-09-10 06:10:39

回答

2

記住創建與託管應用程序的名稱「區域」的文件夾。這解決了我的問題。