【问题标题】:How can I configure sub routes in MVC如何在 MVC 中配置子路由
【发布时间】:2016-11-03 15:45:24
【问题描述】:

我的网站中有一项服务,可以从外部提供商加载内容块,用户可以从中单击链接并进行导航。

我的路由需要能够通过使用请求路径调用我的主控制器来处理这些问题。

例如,他们将用于导航的 url 将是

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 }
    );

但这似乎没有任何效果。

【问题讨论】:

  • 我认为您的具有多个类别的架构最初是错误的您需要例如通过参数传递您需要的所有类别。
  • 问题是它不是我的架构。我打电话给外部供应商,使用它来寻找合适的产品。

标签: c# asp.net-mvc model-view-controller routing


【解决方案1】:

尝试使用全部路由

routes.MapRoute(
        name: "Category",
        url: "shop/hire/{*categories}",
        defaults: new { controller = "Home", action = "Index" }
    );

在您的操作中,您可以解析值以获取您的类别和产品

public ActionResult Index(string catagories) { ... }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2021-04-23
    相关资源
    最近更新 更多