0

シンプルなasp.netプロジェクトを作成しました。

Account フォルダーと、Register.cshtml、LogIn などの多くのファイルがあります。URL: localhost/Account/Register

したい: localhost/Register、localhost/LogIn。

_AppStart.cshtml でマップしようとしました:

RouteTable.Routes.MapPageRoute("Account", "{Action}", "~/Account/{Action}"); 

そして、それは機能しません。

4

2 に答える 2

0

これを試してみてください....

 //Default 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                "Default",
                "", 
                new { controller = "Home", action = "Index", id = "" }
            );

          //url rewriting

            RouteTable.Routes.MapRoute(null, "Register/{ID}", new { controller = "Home", action = "Register" });
于 2013-04-11T05:29:02.243 に答える
0

MapPageRoute は ( msdnから)であるため、まず MapRoute を MapPageRoute に使用する必要があります。

Web フォーム アプリケーションのルートを定義する方法を提供します。

ただし、コードを次のように変更すると、次のようになります。

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

     routes.MapRoute("AccountRoute", "{Action}", new {controller = "Account"});

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

パラメーターのないすべてのリクエストは、他のコントローラーで処理する必要がある場合でも、AccountRoute に送られます。

それが機能する唯一の方法は、次のようなコードを作成することです。

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

//ALL routes you need
routes.MapRoute("LoginRoute", "{Action}", new { controller = "Account", action = "Login" });
routes.MapRoute("RegisterRoute", "{Action}", new { controller = "Account", action = "Register" });            

//Default route in the end
routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
于 2013-04-11T05:41:58.270 に答える