0

MVCルーティングに問題があります。通常はうまく機能しますが、何らかの理由で真ん中のステートメントは正常に機能しますが、最後のルートは機能しません。3番目のルートを真ん中に置くとうまくいきます。これらの2つのルートが互いに干渉している理由はわかりません。

ルートは次のとおりです。

routes.MapRoute(
           "VoucherPreviewNdddewUser", // Route name
           "{Home}/{VoucherBusinessUserEntry}/{ID}/{TokenID}", // URL with parameters
           new { controller = "Home", action = "VoucherBusinessUserEntry", id = 0, TokenID = Guid.NewGuid() } // Parameter defaults
           );

                routes.MapRoute(
                "Regdfsdfsdf", // Route name
                "{LoginReg}/{Register}/{UserTrackingID}/{IsFromScript}", // URL with parameters
                new { controller = "LoginReg", action = "Register", UserTrackingID = System.Guid.Empty
                    ,isfromscript = System.Boolean.FalseString 
                } // Parameter defaults
            );

これがURLです:

http://localhost:50839/home/VoucherBusinessUserEntry/44/7209FA62-FD5F-40AE-8239-7CF1855675E8

http://localhost:50839/LoginReg/Register/7209FA62-FD5F-40AE-8239-7CF1855675E8/true

誰かがこれを引き起こしているかもしれないアイデアを持っていますか?

4

1 に答える 1

4

{} の間に何かを入れると、変数になります。したがって、ルートは実際には次のようになります。

routes.MapRoute(
       "VoucherPreviewNdddewUser", // Route name
       "Home/VoucherBusinessUserEntry/{ID}/{TokenID}", // URL with parameters
       new { controller = "Home", action = "VoucherBusinessUserEntry", id = 0, TokenID = Guid.NewGuid() } // Parameter defaults
       );

routes.MapRoute(
            "Regdfsdfsdf", // Route name
            "LoginReg/Register/{UserTrackingID}/{IsFromScript}", // URL with parameters
            new { controller = "LoginReg", action = "Register", UserTrackingID = System.Guid.Empty
                ,isfromscript = System.Boolean.FalseString 
            } // Parameter defaults

必要なコントローラーとアクションを定義する必要がありますが、これらの変数は定数であり、議論の余地がないため、URL には存在しません。それらを可変にしたい場合は、URL に {controller} と {action} が必要です。たとえば、LoginReg2 番目のルートのように、デフォルトは です。

于 2013-01-22T16:11:42.303 に答える