2011-07-11 102 views
0

我剛開始使用MVC3中的路由,我完全困惑。我希望我能就如何從這個網站做我需要的事情得到一些建議。這是我想要做的。首先也是最重要的,我需要所有這些鏈接去控制器產品MVC3路由問題

www.xx.com/product 12 code/   >> Action: Overview, 
            >> ProdId=12 passed as a param 

www.xx.com/product 12 code/Overview >> Action: Overview, 
            >> ProdId=12 passed as a param 

www.xx.com/product 12 code/Results >> Action: Results, 
            >> ProdId=12 passed as a param 

www.xx.com/product 12 code/Product >> Action: Product, 
            >> ProdId=12 passed as a param 
            >> Code="" passed as a param 

www.xx.com/product 12 code/Product/123 >> Action: Index, 
            >> ProdId=12 passed as a param 
            >> Code= 123 passed as a param 

我已經學到的是,我能得到「12」是這樣的:

routes.MapRoute("Route 1", // Route name 
       "product {prodId} code/{action}/{id}", 
       new 
       { 
        controller = "Product", 
        action = "Index", 
        id = UrlParameter.Optional 
       } 
      ); 

但我怎麼可以讓它去不同的動作事件,並傳遞到產品編號和ID參數?我認爲這個路線系統非常強大,但對於像我這樣的新用戶來說非常複雜。我需要建立多少條路線才能滿足需要?

回答

2
routes.MapRoute("Route 1", // Route name 
       "product {prodId}/{action}/{code}", 
       new 
       { 
        controller = "Product", //default controller=Product 
        action = "Index",   //default action= Index 
        prodId = 12,    //default prodId=12 
        code=UrlParameter.Optional // code is optional 
       } 
      ); 






www.xx.com/product 12/   >> Action: Overview, 
            >> ProdId=12 passed as a param 

www.xx.com/product 12/Overview >> Action: Overview, 
            >> ProdId=12 passed as a param 

www.xx.com/product 12/Results >> Action: Results, 
            >> ProdId=12 passed as a param 

www.xx.com/product 12/Product >> Action: Product, 
            >> ProdId=12 passed as a param 
            >> Code="" passed as a param 

www.xx.com/product 12/Product/123 >> Action: Index, 
            >> ProdId=12 passed as a param 
            >> Code= 123 passed as a param 
+0

你確定嗎?我已經有這個工作?這是我理解的唯一部分。我的問題是我如何設置其他路線。也許有人可以證實你在說什麼?謝謝 – AnneMarie

+0

我編輯了我的答案,我剛剛確認路線中的空格是有效的,就像你所做的一樣,但是它們會導致問題。 –

+0

謝謝Praveen。對不起。我不明白你的路線信息。它看起來像所有東西都是硬編碼去索引行動與12 prodId?如果用戶沒有指定操作,我還需要它默認轉到「概覽」操作。 – AnneMarie