如何在链接中不显示控制器名称的情况下创建根路由

时间:2016-04-20 09:35:56

标签: asp.net-mvc url-routing

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

我在Controllers文件夹中有一个名为Events的控制器,我有一些ActonResult方法Index,Search,Details,它们从

返回视图
  

查看/活动/索引,搜索,详情

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

现在,在没有控制器名称的情况下显示这些视图的最佳方法是什么。我的索引视图现在显示为

  

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

我不想显示为

  

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

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

只是js代码的一部分

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

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

我的indexNum的index方法中也有一些参数(这是为了无限的分页)。

Bellow是我的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 });

问候!

1 个答案:

答案 0 :(得分:1)

试试这个:

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