我的网站上有一项服务,可以从外部提供商处加载内容块,用户可以从中点击链接并导航。
我的路由需要能够通过使用请求路径调用我的家庭控制器来处理这些问题。
例如,他们将用于导航的网址将是
www../shop/hire/category/subcategory/subsubcategory/....
如果他们在特定产品之后:
www../shop/hire/category/subcategory/subsubcategory...?product=ABC
常量,/shop/hire/
类别会根据您所在的位置而变化,而产品如果已经找到了实际发现的内容则会变化。
我遇到的问题是,在我的应用程序中点击了具有类似路径的链接,而不是使用HomeController,因此我可以解析请求,并使用适当的URL调用服务,我只是得到一个404。
我尝试添加路线:
routes.MapRoute(
name: "Category",
url: "shop/hire/{categories}/{product}",
defaults: new { controller = "Home", action = "Index", categories = UrlParameter.Optional, product = UrlParameter.Optional }
);
但这似乎没有任何影响。
答案 0 :(得分:1)
尝试使用catch all route
routes.MapRoute(
name: "Category",
url: "shop/hire/{*categories}",
defaults: new { controller = "Home", action = "Index" }
);
在您的操作中,您可以解析该值以获取您的类别和产品
public ActionResult Index(string catagories) { ... }