1

MVC4 Web API アプリケーションがあります。すべての APIController クラスを Controllers/API の下に配置し、現在は Controllers/ フォルダーに MVC コントローラー クラスを作成しています。

EntityFramework を使用してビューで読み取り/書き込みを指定する UserController という名前のコントローラーを追加します。これにより、Users という名前の /Views の下にフォルダーが自動的に生成されます。Create.cshtml、Delete.cshtml、Index.cshtml などのファイルが含まれています。

問題は、この User ビューの URI を /Admin/User/ にしたいことです

Admin/ フォルダーの下にビューを作成することを指定する機会を逃しましたか? 必要な場所にフォルダー全体をコピーしようとしましたが、その方法ではアクセスできません。コントローラーとビューを削除してからコントローラーを再作成しましたが、ビューが Admin/ の下に作成されるように設定できる場所が見つかりませんでした。

MVC コントローラーを作成し、特定の Views フォルダーの下に CRUD ページを自動生成するにはどうすればよいですか?

- アップデート -

Admin/ のルートを追加しました。ここに私の RouteConfig.cs があります:

public class RouteConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "Administration",
            routeTemplate: "Admin/{controller}/{action}"
        ); 
    }

    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 }
        );
    }
}

問題があるかどうかはわかりませんが、Admin 用の MVC コントローラーがあります。これは AdminController と呼ばれます。邪魔かなと思い、 に変えrouteTemplate: "Admin/{controller}/{action}"てみましrouteTemplate: "Admin1/{controller}/{action}"たが変わりませんでした。

これが私が見ているエラーです:

<!--  
[HttpException]: A public action method &#39;user&#39; was not found on controller &#39;MYPROJECT.Web.API.Controllers.AdminController&#39;.
   at System.Web.Mvc.Controller.HandleUnknownAction(String actionName)
   at System.Web.Mvc.Controller.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
   at System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
   at System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End()
   at System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)
   at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
 -->

CRUD ページが自動的に生成された後、.cshtml ファイルを含む新しいフォルダーが作成されます。ただし、で作成され/Views/User/ます。この /User/ フォルダーを に移動 (VS でドラッグ/ドロップ) しても問題あり/Views/Admin/User/ませんか? (他の理由ではなく、組織のための場合)。

4

1 に答える 1