2016-08-17 17 views
4

私のMVC 5アプリケーションに2つの領域があり、正しく動作しません。MVC5領域が機能しない

私は、以下のリンクhttp://localhost:45970/Admin/Adminを使用するとアプリが、私はそれが/Views/Admin/Index.cshtmlからIndex.cshtmlファイルをロードしようとhttp://localhost:45970/Adminロードしようとすると、しかし/Areas/Admin/Views/Admin/Index.cshtmlに位置していますwhicxh適切index.cshtmlをロードします。

すべての検索結果は、私が正しいことをしていると言います。私は、APIのサンプルプロジェクトを読み込んで、ヘルプエリアを見て、正しく機能していることを確認しました。ここで

は私RouteConfig.csがここ

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 
using System.Web.Routing; 

namespace BlocqueStore_Web 
{ 
    public class RouteConfig 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
       namespaces: new[] { "BlocqueStore_Web.Controllers" } 
      ); 
     } 
    } 
} 

ファイルである私のGlobal.asax.csののApplication_Start()セクションが

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

    GlobalConfiguration.Configure(WebApiConfig.Register); 
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
} 

そして最後に、私のAdminAreaRegistrationファイルです。 CSファイル

using System.Web.Mvc; 

namespace BlocqueStore_Web.Areas.Admin 
{ 
    public class AdminAreaRegistration : AreaRegistration 
    { 
     public override string AreaName 
     { 
      get 
      { 
      return "Admin"; 
      } 
     } 

     public override void RegisterArea(AreaRegistrationContext context) 
     { 
      context.MapRoute(
       "Admin_default", 
       "Admin/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional }, 
       namespaces: new[] { "BlocqueStore_Web.Areas.Admin.Controllers" } 
      ); 
     } 
    } 
} 

だから私は何が欠けていますか?

+0

defaultsパラメータでIndexAdminにコントローラとアクションを設定:// localhostを:45970/Admin'を? – ekad

+0

デフォルトでは、/Areas/Admin/Views/Admin/Index.cshtmlをロードする必要があります。 –

+0

は、返されたキーを修正したコメ​​ントが –

答えて

3

Admin領域を登録するときに、デフォルトコントローラを設定していません。あなたはURLが `HTTPの場合にロードしたいん表示context.MapRoute方法

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.MapRoute(
     "Admin_default", 
     "Admin/{controller}/{action}/{id}", 
     defaults: new { action = "Index", controller = "Admin", id = UrlParameter.Optional }, 
     namespaces: new[] { "BlocqueStore_Web.Areas.Admin.Controllers" } 
    ); 
} 
+0

になるとすぐに** GENIUS **です。魅力的に働いた、ありがとう。 –

+0

http://stackoverflow.com/questions/38988376/mac5-area-not-behaving-properlyにこの記事に関連する新しい投稿が追加されました –

関連する問題