0

我的問題是關於爲內部用戶和外部用戶設置應用程序的訪問權限。MVC 4 - 在特定區域的控制器上獲取404

基於MS TechKB: AREAS in ASP.NET我去了AREAS。我有一個Areas/Internal和​​。​​具有應用程序的實際功能和控制器。所有Areas/Internal確實是檢查服務器變量,並將其身份設置爲您的域名,如果它在活動目錄中籤出。

的問題是,我可以給​​控制器/頁就好了,但是當我嘗試瀏覽到Areas/Internal區域控制器,我收到了404我的控制器命名爲Intranet(不包括在名稱中的「控制器」)這就是我的InternalAreaRegistration.cs文件看起來像:

public override void RegisterArea(System.Web.Mvc.AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Internal_default", 
      "Intranet/{action}/{id}", 
      new { action = "Index", id = UrlParameter.Optional }); 
    } 

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

誰能告訴我,爲什麼我會得到的內部控制器404?

+0

如何將路由工作時無需控制器? – Miller

+0

外部路由使用標準{控制器}/{動作}/{id}我不知道這是否回答您的問題 – IWriteApps

+0

,但是這行新{action =「Index」,id = UrlParameter.Optional});不是 – Miller

回答

0

看來您在上面寫的代碼中的Area後面缺少控制器段。它應該是這樣的:

 

     public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "Internal_default", 
       "Intranet/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional }, 
       namespaces: new[] { "Your Controller Namespace" } 
      ); 
     } 

低於鏈接回答了相關的問題,希望這將有助於太: Controller with same name as an area - Asp.Net MVC4