在映射到产品控制器的默认路由之后,如何为产品创建直通(回退)路由?
而不是 example.com/product/laptop 我想要 example.com/laptop
/product 是一个可以完成各种工作的应用程序。但是,产品名称是动态的,并且一直在添加新名称。
如果路由存在,那么它应该使用默认值:
example.com/about/
example.com/about/shipping
否则,它是一个产品,并且应该落入最后一条路由规则:
example.com/{动态产品名称后备}
example.com/laptop
example.com/mouse
example.com/iphone
我已经尝试了所有的后备,但它永远不会到达 Product 控制器,并且它没有传递我需要的产品名称。
url: "{*.}"
路由配置:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "About", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Fall Through to Product",
url: "{productname}/",
defaults: new { controller = "Product", action = "Index" }
);
控制器
public class ProductController : Controller
{
public ActionResult Index(string productname)
{
return View();
}
}