将参数传递给索引视图
问题描述:
这里很基本的问题。为什么我得到一个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所描述的那样。