2013-02-20 20 views
0

我想在用戶輸入URL到瀏覽器時根據ID重定向用戶。例如,用戶輸入:在mvc中將base/id路由到controller/action/id 4

http://localhost:50431/10213 

,他們將被重定向到:

http://localhost:50431/home/job/10213 

默認路由:

routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{jobno}", 
       defaults: new { controller = "Home", action = "Job", jobno = UrlParameter.Optional } 
      ); 

我怎樣才能做到這一點?

回答

1

你可以嘗試這樣的事:

routes.MapRoute(
    name: "Job Number", 
    url: "{jobno}", 
    defaults: new { controller = "Home", action = "Job" }, 
    new { jobno = @"[0-9]*" }  
); 

並把它放到另一條路線之上。添加的參數是爲了避免路線捕獲像http://localhost:50431/foobar這樣的URL,但只有那些包含數字的URL。

請注意我目前沒有辦法測試它,所以您可能需要稍微調整它。

+0

是的,我調整了它,現在它的作品。謝謝!這裏是我改變了:'routes.MapRoute( name:「Job Number」, url:「{jobno}」, 默認值:new {controller =「Home」,action =「Job」,jobno = new {jobno = @「[0-9] *」}} );' – iswinky 2013-02-20 09:54:04

0

我覺得這是最好的解決辦法:

routes.MapRoute(
    name: "Job Number", 
    url: "{jobno}", 
    defaults: new { controller = "Home", action = "Job", .jobno = UrlParameter.Optional }, 
    constraints: new { jobno = @"[0-9]*" }  
); 

我測試了這一點,它工作正常,他在評論的答覆並沒有爲我正常工作。