将参数传递给索引视图

问题描述:

这里很基本的问题。为什么我得到一个404错误,当我尝试查看将参数传递给索引视图

/供应商/ 123

但我可以看到的页面,如果我去

/供应商/索引/ 123

有没有什么办法让我的工作成为第一种方式?我只是使用在Global.asax中注册的默认路由。

因为这就是默认路由的定义方式。如果你不想指定actionname你可以修改它是这样的:

routes.MapRoute(
    "Default", 
    "{controller}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

这是说你可能不应该因为做这个现在你的路线,你不必指定动作的可能性你希望在给定的控制器上调用这个名称,这意味着你只能在每个控制器上有一个单独的动作,而这个动作就是Index。在另一方面,如果你想要做一些这方面的具体控制器上你仍然可以保留默认路由,并添加另一个问题:因为在后{id}预计动作名称的基本路由

routes.MapRoute(
    "Vendors", 
    "vendors/{id}", 
    new { controller = "Vendors", action = "Index", id = UrlParameter.Optional } 
); 

routes.MapRoute(
    "Default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 

,而是你正试图把它在控制器名称之后。

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
); 

更改您的溃败只是{controller}后接受{id}。就像@Darin所描述的那样。