mat*_*mat 3 model-view-controller asp.net-mvc asp.net-mvc-3
我有MVC3应用程序,我想保留简短的URL.什么是最好或干净的方式来做到这一点?让我们说我有两个控制器帐户和家庭.我在帐户控制器中拥有所有与帐户相关的任务登录,注销,配置文件,常见问题解答等.家庭控制器中的所有主要任务,如TaskA,TaskB和TaskC.我正在寻找如下URL:
当用户第一次访问网站时,他们需要重定向到登录页面.在任何时候,用户还应该能够从一次控制器动作切换到另一个控制器动作(从TaskA切换到Logoff).
干净的方法是什么?
您可以为与默认路由不匹配的特定URL设置路由.例如:
routes.MapRoute("Logon", "logon/", new { controller = "account", action = "logon" });
routes.MapRoute("TaskA", "TaskA/", new { controller = "home", action = "taska" });
Run Code Online (Sandbox Code Playgroud)
如果未找到该网址的所有其他匹配项,则您的默认路由可以定义您的起始页.
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}/", // URL with parameters
new { controller = "account", action = "logon", id = UrlParameter.Optional } // Parameter defaults
Run Code Online (Sandbox Code Playgroud)
您无需为每个URL设置路由.在路线限制的帮助下,您可以执行以下操作:
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
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1034 次 |
| 最近记录: |