2011-07-11 116 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