2013-03-26 48 views
0

我想使我的asp.net MVC4應用程序的一些網址更短。例如我有Account控制器和這樣的動作ForgotPassword。網址看起來像這樣使url更短的一些控制器和動作

http://www.mydomain.com/account/forgotpassword 

我想提出的URL縮短(下面的例子),但不重命名實際控制和動作名字。什麼是最好的方式來做到這一點?如果你使用MVC4

routes.MapRoute(
    name: "ForgottenPassword", 
    url: "a/fp", 
    defaults: new { controller = "Account", action = "ForgottenPassword" } 
); 

...在RouteConfig.cs:

http://www.mydomain.com/a/fp 

回答

2

你可以註冊一個簡單的路線。

+1

按預期工作! – Tomas 2013-03-26 08:18:26

0

最簡單的,但它是不是手工做的最好的方法代碼您的自定義路線:

routes.MapRoute(
    name: "AccountForgotRoute", 
    url: "a/fp/{id}", 
    defaults: new { controller = "Account", action = "ForgotPassword", id = UrlParameter.Optional }   
); 

這樣做的缺點是,如果你將有噸的控制器和行動符合並且你喜歡所有這些「縮短」,那麼你將不得不寫很多路線。

一種替代方法是在數據庫中定義自定義路由並將其寫入文件。因此,舉例來說,您在數據庫行中有一個accountcontroller-forgotpassword鍵值爲a/fp,您可以動態構建路徑定義,將其寫入文件並讓您的應用程序將其選中。您的應用程序如何獲取路線定義可以像this一樣完成。該鏈接仍然適用於MVC 4.但是,這是一個混亂,國際海事組織,但是一個替代。

相關問題