MVC 3 keeping short url
我有MVC3应用程序,我想在其中保留短网址。 最好的或干净的方法是什么?
可以说我有两个控制器Account和Home。 我在帐户控制器中拥有与帐户相关的所有任务,包括登录,注销,配置文件,常见问题解答等。 家庭控制器中的所有主要任务,如TaskA,TaskB和TaskC。 我正在寻找如下网址:
用户首次访问该网站时,他们需要重定向到登录页面。 用户还可以随时从一次控制器动作切换到另一个控制器动作(从TaskA到注销)。
干净的方法是什么?
您无需为每个URL设置路由。 在路线约束的帮助下,您可以执行以下操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 | routes.MapRoute( "Home", // Route name "{action}", // URL with parameters new { controller ="Home", action ="Index" }, // Parameter defaults new { action ="TaskA|TaskB|TaskC|etc" } //Route constraints ); routes.MapRoute( "Account", // Route name "{action}", // URL with parameters new { controller ="Account", action ="Logon" }, // Parameter defaults new { action ="Logon|Logoff|Profile|FAQs|etc" } //Route constraints ); |
您可以为与默认路由不匹配的特定URL设置路由。 例如:
1 2 | routes.MapRoute("Logon","logon/", new { controller ="account", action ="logon" }); routes.MapRoute("TaskA","TaskA/", new { controller ="home", action ="taska" }); |
如果未找到该URL的所有其他匹配项,则默认路由可以定义您的起始页。
1 2 3 4 | routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}/", // URL with parameters new { controller ="account", action ="logon", id = UrlParameter.Optional } // Parameter defaults |