ASP.NET MVC 路由 - 一个取消另一个
本文关键字:一个 取消 另一个 NET MVC 路由 ASP | 更新日期: 2023-09-27 17:55:18
>我对MVC路由有问题,它通常工作得很好,但由于某种原因,中间的语句工作正常,但最后一条路由不起作用。如果我把第三条路线放在中间,它会正常工作。我不知道为什么这两条路线相互干扰。
以下是路线:
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
);
以下是网址:
http://localhost:50839/home/VoucherBusinessUserEntry/44/7209FA62-FD5F-40AE-8239-7CF1855675E8
http://localhost:50839/LoginReg/Register/7209FA62-FD5F-40AE-8239-7CF1855675E8/true
有没有人知道可能导致这种情况的原因是什么?
当你在 {} 之间放置一些东西时,它变成了一个变量。 因此,您的路线应如下所示:
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},例如,默认值为 LoginReg
在第二个路由中。