2016-01-21 121 views
-1

我想從URL中刪除區域名稱和控制器名稱。我能夠刪除區域名稱。但是,如果試圖刪除控制器名稱,則會顯示「頁面未找到錯誤」。下面是我用來刪除區域和控制器名稱的代碼片段。從MVC4中的mvc路由中刪除區域名稱和控制器名稱

public class HomeAreaRegistration : AreaRegistration 
{ 
    public override string AreaName 
    { 
     get 
     { 
      return "Home"; 
     } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     //context.MapRoute(
     // "Home_default", 
     // "Home/{controller}/{action}/{id}", 
     // new { action = "Index", id = UrlParameter.Optional } 
     //); 

     //context.MapRoute(
     // "Home_default", 
     // "{controller}/{action}/{id}", 
     // new { action = "Index", id = UrlParameter.Optional }, 
     // new { controller = "(Home)" } 
     //); 

     context.MapRoute(
      "Home_default", 
      "{action}/{id}", 
      new { action = "Index", id = UrlParameter.Optional }, 
      new { controller = "(Home)" } 
     ); 
    } 
} 

在registerarea函數中,前兩條路線(註釋)完美地工作。如果我使用第一個URL,則會附帶區域/控制器/操作。如果我使用第二個域名,那麼該域名不會在URL中出現。URL與控制器/操作一起提供。

在第三個我試圖刪除區域和控制器 我的第三條路線是否有任何錯誤。請建議

回答

0

你有沒有嘗試過這樣的:

routes.MapRoute("default", "{action}/{id}", new {controller = "Home", action = "Index", id = UrlParameter.Optional}); 
+0

是的,我已經試過了,但問題仍然是相同的。 – shu

+0

您試圖將哪個網址映射到哪個控制器/操作? – RoteS

+0

@using(Html.BeginForm(「Index」,「Home」,new {area =「Home」},FormMethod.Post,new {id =「formHome」})) { }這是我嘗試的形式以行動「索引」,控制器「家」和區「家」映射。當我嘗試提交表單時,我只需要顯示url中的「索引」而不是/ Home/Home/Index。 – shu

相關問題