私はというベースコントローラを含むというフォルダを含む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プロジェクトです。
アイデア?