【发布时间】:2013-01-30 18:15:21
【问题描述】:
我创建了一个示例 Internet MVC 应用程序。然后使用 Index 视图创建 ProductsController。
然后在路由中,我使用以下路由规则将产品 url 映射到 products/prodname/id。
routes.MapRoute(
name: "ProdDef",
url: "{controller}/{name}/{id}/{action}",
defaults: new { controller = "Products", action = "Index", id = UrlParameter.Optional, name = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
但在此之后,联系页面将我重定向到主页索引控制器操作。 ??为什么这样?我是否遗漏了什么以及为什么在只为产品创建一个规则后其他操作停止工作。
【问题讨论】:
-
如果您需要“ProdDef”仅在他们访问 /Products 时使用,则指定您只需要该路由:url:“Products/{name}/{id}/{action}” .否则,它会被用于每个请求,因为您没有指定控制器或名称,而是将 ID 和操作设为可选。
标签: asp.net-mvc asp.net-mvc-routing