2017-06-08 21 views
0

私はというベースコントローラを含むというフォルダを含むProject.Webというプロジェクトを持っています。ASP.NET MVCカスタムコントローラが動作しません

namespace ProsecVHIPHelper.Web.Mvc 
{ 
    /// <summary> 
    /// A base controller for all controllers 
    /// </summary> 
    public abstract class BaseController : Controller 
    { 
     /// <summary> 
     /// Constructor 
     /// </summary> 
     /// <param name="applicationContext"></param> 
     protected BaseController(ApplicationContext applicationContext) 
     { 
      if (applicationContext == null) throw new ArgumentNullException("applicationContext"); 
      ApplicationContext = applicationContext; 
     } 

     /// <summary> 
     /// Default constructor 
     /// </summary> 
     protected BaseController() : this(ApplicationContext.Current) { } 

     /// <summary> 
     /// The application context 
     /// </summary> 
     public ApplicationContext ApplicationContext 
     { 
      get; 
      private set; 
     } 

     /// <summary> 
     /// Get the services singleton 
     /// </summary> 
     public ServiceContext Services 
     { 
      get { return ApplicationContext.Services; } 
     } 
    } 
} 

このベースコントローラは、他のすべてのコントローラで使用されます。

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 = "Ftp", action = "Index", id = UrlParameter.Optional }, 
       namespaces: new[] { "Project.Web.Mvc" } 
      ); 
     } 
    } 

私はベースコントローラの名前空間が含まれています。私の第二のプロジェクトで

は、私は、ルートの設定等を有していてProject.Web.UIと呼ばれます。

私のベースコントローラを使用して新しいコントローラを作成すると、常に404が見つかりませんでした。

私はデフォルトのコントローラクラスを使用するとき、それは動作します。

最初に私のコントローラはProject.WebプロジェクトのControllersというフォルダにあります。この名前空間をルートコンフィグレーションにも追加すると、動作しません。

次に、これらのコントローラー(ベースコントローラーではありません)を他のプロジェクトProject.Web.UIに移動しましたが、まだ運がありません。

Project.Webプロジェクトはクラスライブラリであり、Project.Web.UIはWebプロジェクトです。

アイデア?

答えて

0

私は解決策を見つけました。問題は、追加参照を使用してSystem.Web.Mvcを追加したことです。しかし、これは私のWebプロジェクトのSystem.Web.Mvcとは異なるバージョンでした。

この参照を削除し、Webプロジェクトのdllへの参照を追加した後、すべてが魅力的に機能しました!

関連する問題