0

Asp.net mvc にカスタムの既定のページを追加したいので、代わりにページを Home/Index に移動し、Account/Login に移動したいと思います。以下を実装しましたが、それでもホーム/インデックスに移動します。私が間違ったことを教えてください。ありがとうございました

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


            routes.MapRoute(
            name: "Custom",
            url: "{controller}/{Account}/{page}",
            defaults: new
            {
                category = UrlParameter.Optional,
                page = 1,
                action = "Login"
            },
                constraints: new
                {
                    controller = "Account"
                }
            );

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


        }
    }
4

3 に答える 3

3

ルートを変更します。デフォルトのルートは /Home/Index に設定されています

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);

任意のルートに変更できます

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "ControllerName", action = "ControllerActionName", 
        id = UrlParameter.Optional }
);
于 2013-11-12T05:48:34.717 に答える
3

ユーザーが「サインイン」していない場合に、ユーザーをログイン ページまたはカスタム ページにリダイレクトする場合を想定します。

フィルター属性を作成できます。

例:

    [RequireHttps]
    [AuthorizationFilter]
    public class MyController : Controller
    {
    }


    public class AuthorizationFilter : ActionFilterAttribute
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
        //do some validation, find if the user is signed-in.

            filterContext.Result = new RedirectResult(..Some where in the site..);            
        }
    }
于 2014-05-20T19:39:24.843 に答える
0

デフォルトルート(最後のルート)をこれに置き換えます

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
            );
于 2013-11-12T03:09:35.770 に答える