asp.net-mvc - 从mvc url中隐藏一个 Controller 名称,显示其他 Controller 名称

标签 asp.net-mvc asp.net-mvc-routing url-routing

我有两个 Controller ,HomeController 和 ResourcesController。 当请求对 HomeController 执行操作时,我想从 url 中隐藏 Home/,但对于 ResourcesController(或任何其他 controlelr),我想将 Controller 名称保留在 url 中。 例如。/Home/Products 将是/Produtcs,但/Resources/Banana 应保留/Resources/Banana

这些是我的路线:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
    name: "SpecificRoute",
        url: "{action}/{id}", 
        defaults: new { controller = "Home", action = "Home", id = UrlParameter.Optional });

routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Home", id = UrlParameter.Optional }
);

对于家庭 Controller ,它按预期工作,但对于资源 Controller ,我得到“404...找不到资源”

最佳答案

一种可能的方法是您可以在 global.asax 文件中映射所有主页操作。请参阅下面的示例代码。

例如

    routes.MapRoute(
        "ProdutcsRoute", // Route name
        "Produtcs/{id}", // URL with parameters
        new { controller = "Home", action = "Produtcs", id = UrlParameter.Optional } // Parameter defaults
    );

    routes.MapRoute(
        "AboutRoute", // Route name
        "About/{id}", // URL with parameters
        new { controller = "Home", action = "About", id = UrlParameter.Optional } // Parameter defaults
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

关于asp.net-mvc - 从mvc url中隐藏一个 Controller 名称,显示其他 Controller 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24414960/

相关文章:

php - 在 Yii 中使用元素名称创建 URL #

javascript - 如何使用 Google map 在 ASP MVC 中显示动态位置

c# - 异步 Controller 给我带来了什么好处?

asp.net-mvc - 利用 Controller 和 View 中的继承

asp.net-mvc-3 - 如何将 int 数组传递给 RouteValueDictionary

javascript - 如何为非根基 url 设置 AngularJS $locationProvider HTML5 模式?

c# - SelectedItem 在 ASPNET.MVC 的 SelectList 中没有被记住

asp.net-mvc - ASP.NET MVC 是否有任何 DateTime 路由约束?

asp.net-mvc - 比较两个 RouteValueDictionary 实例

javascript - AngularJS 动态路由