如何在 link 中创建不显示控制器名称的根路由

How to create root routes without displaying controller name in link

我只是想知道是否有人可以指出正确的方向。这是我的问题:

我在 Controllers 文件夹中有一个名为 Events 的控制器,那里有一些 ActonResult 方法索引、搜索、详细信息,returns 来自

的视图

View/Events/Index,Search,Details

以及来自共享文件夹的部分视图。

现在显示那些没有控制器名称的视图的最佳方式是什么。我的索引视图现在显示为

localhosts|domain.com.../Events/Index or localhosts|domain.com.../Events/Details/1

而且我不想显示为

localhosts|domain.com... or localhosts|domain.com.../Details/1

现在,我很好奇这些更改是否会对我的 AJAX 调用产生任何影响,这些调用是:

部分js代码

@Url.Action("index", "Events"),

url: "@Url.Content("~/Events/MyAjaxSearch")", data: "searchString=test&Location=test",

我的 Index 方法中也有一些参数用于 pageNum(这是为了无限分页)。

下面是我的 RouteConfig 代码:

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

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

此致!

试试这个:

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