1
我在嘗試配置ASP.NET MVC項目以將多個URL路由到相同視圖時遇到了一些麻煩。鑑於以下網址:將多個URL路由到ASP.NET MVC中的相同視圖
localhost:1234
localhost:1234/Products
localhost:1234/Products/1
localhost:1234/Products/abcd
localhost:1234/Products/whatever
我想每一種路由用戶在同樣的觀點(Products.cshtml
,例如)。
繼this site一個例子,我飾我的控制器行動,以特殊的路由屬性:
[HttpGet]
[Route("Products/{id?}")]
public ActionResult Products(string id)
{
return View();
}
而且在我RouteConfig.cs
文件,我有我的默認路由設置:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Products", action = "Products", id = UrlParameter.Optional }
);
localhost:1234
和localhost:1234/Products
鏈接都可以工作,但這不適用於其餘的URL。
您是否記得在初始化代碼中的某處調用MapMvcAttributeRoutes()? –
@MattiVirkkunen哦天啊,不,我沒有。這解決了一半的問題,但我稱這個功能,默認鏈接不再起作用。 – alex
您可以在默認路由之前添加其他路由'url:「Products/{id}」,'(具有相同的默認值)並刪除'[Route(「Products/{id?}」)]'屬性 –